关于"use strict"
JavaScript严格模式为ES5开始支持的特性
它不是一条函数,但是是一个字面量表达式。
严格模式会给JavaScript带来很多限制,但是会提高编译器效率、使代码更加规范。
严格模式的限制
- 不允许使用未声明的变量,对象也是变量,所以也需要声明。
- delete关键字不能用来删除变量、对象、函数,但是对象中包含的对象,可以删除,所以下面的代码不会报错
var a={
b:{}
}
delete a.b //不报错
delete a //报错
- 不允许变量重名
- 不允许使用八进制和转义字符(这个我有点懵了,希望有大佬解答下)
- 不允许对只读属性赋值
- 不允许对一个使用getter方法读取的属性进行赋值
- 不允许删除一个不允许删除的属性,比如
delete Object.prototype;
- 变量名不能为
eval
和arguments
- 在作用域 eval() 创建的变量不能被调用
- 禁止this关键字指向全局对象
浏览器支持
Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。
使用方法
将
"use strict";
添加在脚本或者函数的头部
网友评论