最近,我通过 Crockford 的 JSLint 运行了一些 JavaScript 代码,它给出了以下错误:
第 1 行字符 1 的问题:缺少“use strict”语句。
做了一些搜索,我意识到有些人添加了 "use strict";
进入他们的 JavaScript 代码。一旦我添加了语句,错误就停止出现了。不幸的是,谷歌没有透露这个字符串声明背后的大部分历史。当然,这一定与浏览器如何解释 JavaScript 有关,但我不知道会产生什么影响。
那么什么是 "use strict";
所有关于,它意味着什么,它仍然相关吗?
当前浏览器是否响应 "use strict";
字符串还是供将来使用?
原文由 Mark Rogers 发布,翻译遵循 CC BY-SA 4.0 许可协议
ES6 模块更新
在 原生 ECMAScript 模块(带有
import
和export
语句)和 ES6 类 中,严格模式始终处于启用状态且无法禁用。原始答案
您可能会对这篇关于 Javascript 严格模式的文章感兴趣: John Resig - ECMAScript 5 严格模式、JSON 等
引用一些有趣的部分:
和:
另请注意,您可以将“严格模式”应用于整个文件……或者您只能将其用于特定功能 (仍然引用 John Resig 的文章) :
如果您必须混合旧代码和新代码,这可能会有所帮助;-)
所以,我想这有点像你可以在 Perl 中使用的
"use strict"
(因此得名?) :它通过检测更多可能导致损坏的东西来帮助你减少错误。现在 所有主要浏览器都支持 严格模式。