在此页面上:

<!DOCTYPE html>
<html>
  <head>
    <script>
        "use strict";
        var foo = 2;
        delete foo;
    </script>
  </head>
  <body></body>
</html>

Firebug控制台提供:
applying the 'delete' operator to an unqualified name is deprecated
>>> foo
ReferenceError: foo is not defined
foo

但这成功了:
>>> var bar = 2;
undefined
>>> delete bar;
true

即使您注释掉delete foo;以便脚本不会中断,删除bar还是成功的,尽管它“是通过变量声明创建的Global对象的属性,并且DontDelete attribute也是如此”:
>>> foo
2
>>> delete foo
false
>>> var bar = 2;
undefined
>>> delete bar
true

是否可以在FireBug和/或Chrome的控制台中启用“严格模式”?

最佳答案

Firebug控制台的工作方式是将所有代码包装在“eval”调用中,因此脚本中的第一条语句不再“使用严格”,因此已被禁用。您可以尝试将代码包装在一个函数中以对该特定函数强制执行“use strict”,但是我所知道的最佳解决方案是跳过控制台并直接在页面本身中进行测试。

09-11 19:00
查看更多