Con esta página:Posible habilitar el "modo estricto"; en FireBug y la consola de Chrome?
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
var foo = 2;
delete foo;
</script>
</head>
<body></body>
</html>
consola de Firebug da:
applying the 'delete' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo
Pero entonces esto es un éxito:
>>> var bar = 2;
undefined
>>> delete bar;
true
Aunque en comentario delete foo;
de manera que la secuencia de comandos no se rompe , eliminar bar
sigue siendo exitoso a pesar de que "es una propiedad de un objeto global, ya que se crea a través de la variable de claration y también lo ha DontDelete attribute ":
>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true
¿Es posible activar el "modo estricto"; en FireBug y/o la consola de Chrome?
Me pregunto si el código de la consola está siendo canalizado a través 'eval()', en cuyo caso los atributos de DontDelete no lo hará ser establecido. – AJP
... bien, si acabara de leer la siguiente sección: 'Y esta es la esencia del comportamiento anormal de Firebug. Todo el texto en la consola parece ser analizado y ejecutado como código Eval, no como Global o Function. – AJP
Seguí la primera sugerencia de @ zoranc solo para poder ver el modo estricto trabajando en la consola de Chrome. '(función f() { 'use strict'; console.log ('' this '' aquí es: ', esto,' Modo estricto es genial ... '); }());' ' (función f() { console.log ('' this '' aquí es: ', esto,' ¡Las variables globales son malas! Así que Crockford me dijo ... '); }()); ' – slacktracer