上QQ阅读APP看书,第一时间看更新
2.4 严格模式
ES5为这个语言新增了“严格模式”,严格限制了某些行为的规则。一般来说,这些限制可以将代码保持在一个更安全、更适当的规范集合之内。另外,遵循严格模式也更容易让引擎优化你的代码。严格模式是代码的一次重大突破,你应该在自己的程序中一直使用。
根据严格模式编译指示放置的位置,你可以选择使用单独的函数或者整个文件来遵循严格模式:
function foo() { "use strict"; // 这个代码是严格模式 function bar() { // 这个代码是严格模式 } } // 这个代码不是严格模式
对比:
"use strict"; function foo() {
// 这个代码是严格模式 function bar() { // 这个代码是严格模式 } } // 这个代码是严格模式
使用严格模式的一个关键区别(改进!)是,不允许省略var的隐式自动全局变量声明:
function foo() { "use strict"; // 开启严格模式 a = 1; // 省略var,出现ReferenceError错误 } foo();
如果你在代码中打开严格模式,但代码报错或者开始出现bug,这可能会诱使你避开严格模式。但这个本能是一个坏习惯。如果严格模式导致程序出现问题,几乎可以确定这标志着你的程序中有些东西应该进行修复。
严格模式不只会让你的代码更加安全或者更易于优化,更代表了这门语言未来的发展方向。现在就要开始习惯严格模式,而不是一直往后推,这对你来说更简单一些,因为转变更晚只会更难!
有关严格模式的更多信息,参见本系列《你不知道的JavaScript(中卷)》第一部分的第5章。