【笔记】JS严格模式
前言
JS严格模式学习笔记
严格模式的作用
- 消除了JS愈发的一些不合理、不严谨之处,减少了一些怪异行为
- 消除代码运行的一些不安全之处,保证代码运行的安全
- 提高编译器效率,增加运行速度
- 禁用了在ECMAScript的未来版本中可能会定义的一些语法,为未来新版本JS做好铺垫,例如增添部分保留字
开启严格模式
为当前脚本中的所有代码开启严格模式
1 | <script> |
为当前函数中的所有代码开启严格模式
1 | <script> |
严格模式下的规定
对于变量的规定
必须先声明才能使用
1 | // 变量名 = 变量值; |
严禁删除已经声明的变量
1 | // delete 变量名; |
对于this指向的规定
构造函数必须使用new才能使用
- 在全局模式下this不再指向
window
对象,而是指向undefined- 定时器中的this还是指向
window
对象
- 定时器中的this还是指向
- 因为this不再指向
window
对象,所以构造函数在不用new时不能使用
1 | function 构造函数名() { |
对于函数的规定
函数的形参不允许重名
1 | // function 函数名(同名形参, 同名形参) {} |
不允许在非函数区域和非全局区域定义函数
1 | if () { |