严格模式
严格模式(Strict Mode)是 ECMAScript 5 引入的一种 JavaScript 执行模式,它使 JavaScript 在更严格的条件下运行,有助于写出更安全、更优化的代码
开启严格模式
使用 'use strict' 声明严格模式,在 script 的最上面声明全局严格模式,或者在函数中使用局部严格模式
严格模式的约束
全局函数中的 this 是 undefined(非严格模式下是全局对象)
给未声明的变量赋值会抛出错误(非严格模式下会创建全局变量),所以必须显式声明变量
禁止删除不可删除的属性,比如 Object.prototype
限制对 arguments 和 eval 的操作:eval 不能创建变量, arguments 不再与形参绑定
严格模式的好处
减少错误和意外行为
提高代码安全性
为未来 JavaScript 版本铺路
帮助引擎优化代码(因为某些语法可以静态分析)
