javascript - statement - use the function form of use strict
Posible habilitar el "modo estricto"; ¿En la consola de FireBug y Chrome? (4)
Con esta página:
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
var foo = 2;
delete foo;
</script>
</head>
<body></body>
</html>
La consola Firebug da:
applying the ''delete'' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo
Pero entonces esto es exitoso:
>>> var bar = 2;
undefined
>>> delete bar;
true
Incluso si usted comenta, delete foo;
para que la secuencia de comandos no se rompa, la eliminación de la bar
sigue siendo exitosa a pesar del hecho de que "es una propiedad de un objeto global, ya que se crea a través de la declaración de variable y por lo tanto tiene el atributo DontDelete ":
>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true
¿Es posible habilitar el "modo estricto"? ¿En FireBug o en la consola de Chrome?
En Chrome, vaya a "chrome: // flags", luego "Enable Experimental JavaScript". Relanzar.
La consola Firebug funciona envolviendo todo el código en una llamada "eval", por lo que la primera declaración en su script ya no es "uso estricto"; por lo tanto, está deshabilitada. Puede intentar envolver su código en una función para imponer el "uso estricto" de esa función en particular, pero la mejor solución que conozco es omitir la consola y probar directamente en la página.
Si solo está probando una sola función en la consola, también puede poner ''use strict'' como la primera línea en la declaración de la función.