加载中...

严格模式是 ECMAScript 5(2009)引入的一种可选执行模式,在脚本或函数开头写入字符串字面量 "use strict" 即可启用。它让一批原本静默失败或行为暧昧的操作显式抛错,为语言"纠错"而不破坏旧代码兼容。
未声明变量赋值抛出 ReferenceError(杜绝意外全局变量);普通函数调用中 this 为 undefined 而非全局对象;给只读属性赋值、删除不可配置属性会抛出 TypeError;禁止 with 语句;禁止八进制字面量 010 写法;函数参数不允许重名;arguments 与命名参数解除联动;eval 拥有独立作用域;为 ES6 保留了 let、static 等关键字。
ES6 模块与 class 体内自动处于严格模式,无需声明;现代打包产物普遍是模块,因此新代码事实上默认严格。
严格模式是 JavaScript 在保持向后兼容前提下修正设计失误的成功实践,也为引擎优化(如更确定的作用域)创造了条件。

登录 后参与讨论
暂无讨论,来发表第一条评论吧