一、基本介绍
类和模块的内部,默认就是严格模式,所以不需要使用use strict指定运行模式。只要你的代码写在类或模块之中,就只有严格模式可用。
考虑到未来所有的代码,其实都是运行在模块之中,所以 ES6 实际上把整个语言升级到了严格模式。
严格模式早在ES5中就已经定义,它是一种限制性的JavaScript变体,使用特定语句 “use strict”就可以开启严格模式。
二、严格模式
1、变量必须使用var声明
避免在拼写错误的情况下意外的创建全局变量。
2、函数独立调用时 this不再指向window
3、使eval具有自己的作用域
4、 不再支持 arguments.callee
5、 严格模式通过抛出错误来消除了一些原有静默错误
"use strict";
delete Object.prototype; // 抛出TypeError错误
三、快速入案例
<script>
function test() {
a ="a";
}
(function () {
"use strict"
test()
})()
</script>
四、函数在严格模式下调用和严格模式的函数的区别