深入理解javascript严格模式(Strict Mode)(3)
(function() {
"use strict";
function doSomething() {
// 这个函数运行于严格模式
}
function doSomethingElse() {
// 这个函数同样运行于严格模式
}
}());
结论
我强烈建议你从现在开始就启用JavaScript严格模式,它能帮你发现代码中未曾注意到的错误。不要在全局环境中启用,但你能尽量多的使用IIFE(立即执行函数表达式)来把严格模式作用到多个函数范围内。一开始,你会遇到之前未曾碰到过的错误提示,这是正常的。当启用严格模式后,请确保在支持的浏览器中做了测试,以发现新的潜在问题。一定不要仅仅在代码中添加一行”use strict”就假定余下的代码能正常工作。最后,请在严格模式下开始编写更好的代码。
注:
这里有各款浏览器对严格模式支持情况的一个汇总。
可以在这个页面对当前浏览器的严格模式支持度进行测试。
严格模式的优势:
使JavaScript更牢固
1. This不再被封装,在normal mode下,this一直是对象。
2. Fun.caller和fun.arguments即不是可以删除的属性,也不能被set或retrieved。
3. Arguments.caller也是不可以删除的属性,也不能set或retrieved。
为将来的ECMAScript版本铺平道路
1. 增加了下列保留字:implements, interface, let,package, private, protected, public, static和yield 。
2. 方法声明应该放在脚本或方法的最前面,不能放在if或for等语句中间。