Why using `strict mode` in JavaScript libraries?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What does"use strict" do in JavaScript, and what is the reasoning behind it?
实际上,我知道
但我不明白为什么要在JavaScript库中使用
您链接的问题、答案和其中给出的参考文献列出了使用严格模式的一系列原因。
让我说出其中的一个:暗含全球恐怖分子
非严格代码:
1 2 3 4 5 6 7 8 9 | function foo(a) { var myvar; myar = a * 4; // ... return myvar; } |
现在,这个代码:
1 | console.log(foo(2)); |
…应该记录"8",对吗?但它不是,它总是记录"未定义的":
1 2 3 4 5 6 7 8 9 10 | function foo(a) { var myvar; myar = a * 4; // ... return myvar; } console.log(foo(2)); |
此外,它还悄悄地创建了一个名为
比较:
1 2 3 4 5 6 7 8 9 10 11 | function foo(a) { "use strict"; var myvar; myar = a * 4; // ... return myvar; } console.log(foo(2)); |
现在,我不再创建奇怪的返回值和全局变量,而是得到一条很好的错误消息:
现在,可以使用lint工具来完成严格模式的特定方面。但是,当您试图修复某些东西,并在编辑器和浏览器之间来回切换时,您并不总是在Anger工具链中使用lint工具进行编码。所以当浏览器帮你解决问题的时候感觉很好。
另外,strict模式做了lint工具不能做的事情,比如不允许