这是来自MDN的代码:
function f2(){
"use strict"; // see strict mode
return this;
}
console.log(f2());
脚本中的 f2 调用工作正常。但它从控制台调用显示窗口对象!怎么了?设置“javascript.options.strict”选项没有帮助。
在 Chrome 中一切正常。
这是来自MDN的代码:
function f2(){
"use strict"; // see strict mode
return this;
}
console.log(f2());
脚本中的 f2 调用工作正常。但它从控制台调用显示窗口对象!怎么了?设置“javascript.options.strict”选项没有帮助。
在 Chrome 中一切正常。
如果您确实执行了确切的 MDN 片段,那将是一个错误,必须已经修复,因为我无法重现它。
但是,应该注意,如果我们参考这个答案并尝试在 Firefox 控制台中的单独语句中执行测试:
>> var isStrict = (function() { return !this; })(); console.log(isStrict);
false
>> "use strict"; var isStrict = (function() { return !this; })(); console.log(isStrict);
true
这证明了 Firefox 的开发工具确实考虑"use strict"
到了这一点。现在,如果我们再试一次:
>> "use strict";
"use strict"
>> var isStrict = (function() { return !this; })(); console.log(isStrict);
false
这里的变化是"use strict"
在单独的提示中而不是在同一个提示中使用,并且似乎 Firefox 的开发工具为每个提示重新初始化严格模式。因此,如果您尝试使用类似 MDN 的措辞而不是完全使用 MDN 的措辞
"use strict"
在第一个提示时发出,"use strict"
...关于在每个提示上重置的事实,输出本来是正常的。
注意:请注意,另一方面,以下似乎有效:
>> "use strict"; function f3(){return this;}
"use strict"
>> console.log(f3())
undefined