严格模式是一种将更好的错误检查引入代码中的方法。 在使用严格模式时,无法使用隐式声明的变量、将值赋给只读属性或将属性添加到不可扩展的对象等
1、 严格模式的目的
1) 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
2)消除代码运行的一些不安全之处,保证代码运行的安全
3) 提高编译器效率,增加运行速度
4) 为未来新版本的Javascript做好铺垫
2、声明严格模式
可以通过在文件、程序或函数的开头添加 "use strict" 来声明严格模式。 此类声明称作“指令序言”。 严格模式声明的范围取决于其上下文。 如果在全局上下文(函数的范围之外)中声明严格模式,则程序中的所有代码都处于严格模式。如果在函数中声明严格模式,则函数中的所有代码都处于严格模式。
例如,在以下示例中,所有代码都处于严格模式,并且函数外部的变量声明会导致出现语法错误“严格模式下未定义变量”
"use strict"function testFunction(){
var testvar = 4
return testvar
}
// This causes a syntax error.
testvar = 5
在以下示例中,仅 testFunction 中的代码处于严格模式。 函数外部的变量声明不会导致语法错误,但函数内部的声明会导致语法错误
function testFunction(){"use strict"
// This causes a syntax error.
testvar = 4
return testvar
}
testvar = 5
设立"严格模式"的目的,主要有以下几个:
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
新手可以使用严格模式对自己的代码做校验,提高自己的代码质量,最好能做到不使用严格模式写出符合严格模式规范的代码,和不使用编译器就能看出哪些代码不符合严格模式。