JavaScript 严格模式(use strict)

关于"use strict"

JavaScript严格模式为ES5开始支持的特性
它不是一条函数,但是是一个字面量表达式。
严格模式会给JavaScript带来很多限制,但是会提高编译器效率、使代码更加规范。

严格模式的限制

  • 不允许使用未声明的变量,对象也是变量,所以也需要声明。
  • delete关键字不能用来删除变量、对象、函数,但是对象中包含的对象,可以删除,所以下面的代码不会报错
  var a={
    b:{}
    }
  delete  a.b      //不报错
  delete a          //报错
  • 不允许变量重名
  • 不允许使用八进制和转义字符(这个我有点懵了,希望有大佬解答下)
  • 不允许对只读属性赋值
  • 不允许对一个使用getter方法读取的属性进行赋值
  • 不允许删除一个不允许删除的属性,比如delete Object.prototype;
  • 变量名不能为evalarguments
  • 在作用域 eval() 创建的变量不能被调用
  • 禁止this关键字指向全局对象

浏览器支持

Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。

使用方法

"use strict";添加在脚本或者函数的头部

你可能感兴趣的:(JavaScript 严格模式(use strict))