JavaScript严格模式
为什么使用严格模式
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
严格模式的限制
- 不能使用未声明的变量
- 不允许删除变量或对象
- 不允许变量重名
- 不允许使用八进制
- 不允许使用转义字符
- 不允许对只读属性赋值
- 不允许对一个使用getter方法读取的属性进行赋值
- 变量名不能使用 “eval” 字符串:
- 不允许使用以下语句:with (Math){x = cos(2)}
- 禁止this关键字指向全局对象。
严格模式开启
在js文件或函数第一行声明使用"use strict"
函数中是局部严格模式
在类中自动开启严格模式
使用babel时自动开启严格模式