【发布时间】:2011-12-17 13:51:19
【问题描述】:
在 Safari 中运行以下脚本时(检查器打开)
window.onload = function() {
"use strict";
var x = 1;
debugger; // debugger will auto-break on this line
}
在位于该断点处时在控制台中请求x 时出现以下错误:
Error
message: "'with' statements are not valid in strict mode"
删除"use strict"; 行让我可以在该断点上从控制台访问x。
x 两次都显示在侧边栏中的Scope Variables 下方。
【问题讨论】:
-
我认为错误一定在其他地方;在 Safari 中using this test page 不会发生在我身上(我无法设置断点,但我没有收到任何错误,并且确实得到了预期的输出)。您能否将完整复制测试用例发布到问题(最好也发布到jsbin.com 或jsfiddle.net)。
-
我说不上来,但有些东西告诉我,你的代码中某处有
with语句......当然,我完全是在这里猜测......(顺便说一句with语句抛出严格模式代码。) -
你的代码中有'with()'吗? with() 不受欢迎,许多人希望在 ECMAScript 中停止使用它
-
@MikeSav 已经做出决定。
with语句已从严格模式中删除,我们不希望在 ES6 中使用它。 -
@T.J.Crowder 上面的 sn-p 是整个代码。我运行了你的测试用例并设置了断点,我得到了同样的错误(预期)。
console.log输出在这两种情况下都可以正常工作,这对我来说从来都不是问题。 (它只是为了能够在检查器中设置断点。)
标签: javascript safari web-inspector