Javascript(笔记20) - ES5严格模式

严格模式就是字面意义,常规没按标准写的在这种模式下就不行了;

使用字符串来声明:

"use strict";

为啥声明严格模式要用字符串呢,为啥不用一个函数呢?主要是为了向后兼容。



严格模式

1,不再兼容ES3的一些不规则语法,使用新的ES5规范。

2,两种用法: 

2.1,全局严格模式;

2.2,局部函数内严格模式(推荐);

3,就是一行字符串,不会对不兼容严格模式的浏览器产生影响。

4,不支持的规范:

4.1,不支持 with , arguments.callee , func.caller ;

4.2,变量赋值前必须声明;

4.3,局部this必须被赋值(Person(null/undefined)赋值什么就是什么);

4.4,拒绝重复属性和参数;

不标准的函数就不讲了,以后几乎不用了。

示例:

"use strict";        //  在文档的最上面声明

function test(){
console.log(arguments.callee); // 严格模式下,就不让用了
}
test();

Javascript(笔记21) - ES5严格模式_严格模式


如果只是定义在函数里面,那么外面的区域就不受限制了:

function test(){
"use strict"; // 在函数里面声明,那么在外面的就管不着了
console.log(arguments.callee);
}
test();