最近在看React-Native的过程中看到了js的strict mode,查了些资料,看了些博客,记录一下自己需要的内容。
#### 开启方式
严格模式可以针对整个脚本文件,也可以只作用于其中的单个函数,都使用`'use strict'`表示开启严格模式。
- 整个脚本文件
将`use strict`放在脚本文件的第一行即可,否则无效。
- 脚本文件中的单个函数
将`use strict`放在函数体的第一行即可。
PS:看到的一个小技巧,用匿名函数来开启严格模式在合并文件时会比较方便(虽然我从来都没有用到过...)
```
(function(){
'use strict';
})();
```
### 需要注意的几个与普通模式下的不同点
- 变量必须要先用var声明,才能使用。
- 禁止使用`with`。
- `eval`中只能生成作用于其内部的变量。
- 禁止`this`指向全局对象,使用构造函数时一定要使用`new`
- 只有变量的`configurable`值为`true`时,变量才能被删除
- 对象的属性,函数的参数重名会报错。
- 不可以使用八进制表示
- 不允许在非函数的代码块内声明函数
- 新增保留字`implements` `interface` `let` `package` `private` `protected` `public` `static` `yield`