如何使用:
- 全局模式:
使用es5.0严格模式的前提,是在js的逻辑的最顶端 使用字符串的 “use strict";
- 局部模式:
局部的严格模式(在局部的逻辑最顶端使用 "use strict";),第二种方式比较灵活(推荐)。
es5.0严格模式:不再兼容es3.0的一些不规范语法,使用全新的es5.0规范。
好处
- 消除js语法的不合理性、不严谨之处。
- 提高代码运行的安全性。
- 提高编译器效率,增加运行速度。
严格模式与标准模式的区别:
- 严格模式下 隐式声明或定义变量 被禁止
- 严格模式下 对象重名的属性 在严格模式下被禁止
- 严格模式下 arguments.callee() 被禁用
- 严格模式下 with() 语句
- 严格模式下禁止 this关键字指向全局对象 。
- 函数生命必须在最顶层
- 新增关键字/保留字:
* implements、interface、let、package、private、protected、public、yield. - 更多限制
1)with
with 非常强大,可以指定with(){} 后面的括号里要执行的代码体的最直接执行期上下文。
例如:
var obj = {
name : "a"
};
var name = "B";
function c(){
var name = "C";
console.log(name); //正常情况下ao为函数c,所以应该打印 C,下面使用 with方法
with(obj){
console.log(name) //结果是 a 这时先查找的作用域是obj,如果obj内没有要使用的,才去沿着作用域链找!
}
};