在javascript中有个叫“严格模式--strict mode”的东西,估计大多数的程序员没有听说过这个严格模式,我也是最近重新看了一遍基础知识,才发现还有个严格模式可以玩......
言归正传,严格模式在javascript中的定义如下:
"use strict";
在js文件或者代码顶部加上这一段:"use strict";然后整个js就按照严格模式去解析了,严格模式下不允许使用未声明的变量!具体如下:
"use strict";
try{
myFunction();
}catch(e){
console.log(e)
console.log("在严格模式下,yt属于未定义的变量,不再试全局变量")
};
function myFunction() {
yt = 3.14; // 报错 (y 未定义)
};
如果在函数内部使用严格模式:
try{
xs = 3.14; // 不报错
function myFunction2() {
"use strict";
ys = 3.14; // 报错 (y 未定义)
}
myFunction2();
}catch(e){
console.log(e)
console.log("如果函数内部定义为严格模式,那么严格模式解析只会在函数内部")
};
严格模式下,函数内部未声明的变量,将会被try出去,会成为 is not defined,未定义的变量!
为什么使用严格模式呢?
为了消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;消除代码运行的一些不安全之处,保证代码运行的安全;提高编译器效率,增加运行速度;提高编译器效率,增加运行速度;"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向。包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。
另一方面,同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。
作为一个javascript开发者,有义务也有必要为javascript的发展与提升做出贡献!