JavaScript高级程序设计笔记 30
附录 B 严格模式
核心脉络
严格模式是 ECMAScript 5 引入的执行模式,用于限制不安全语法、暴露静默错误,并为引擎优化和未来语言演进提供更清晰的语义。
重点内容
启用严格模式
脚本级:
"use strict";
函数级:
function fn() {
"use strict";
}
ES 模块和类默认运行在严格模式中。
变量限制
严格模式下,未声明变量赋值会报错。
"use strict";
name = "Alice"; // ReferenceError
删除限制
删除变量、函数或不可配置属性会报错或失败得更明确。
arguments 变化
严格模式下,形参和 arguments 不再动态联动。
function fn(a) {
"use strict";
arguments[0] = 2;
console.log(a);
}
this 变化
普通函数直接调用时,严格模式下 this 是 undefined。
function fn() {
"use strict";
console.log(this); // undefined
}
eval 和 arguments 限制
严格模式限制把 eval 和 arguments 用作标识符,也限制 eval 对外部作用域的影响。
面试重点
- 严格模式让静默失败变成显式错误。
- 严格模式下普通函数直接调用的
this是undefined。 - ES 模块和类默认严格模式。
- 严格模式禁止意外创建全局变量。
复习清单
一句话总结
附录 B 的核心是更安全的 JavaScript 执行规则:严格模式减少语言历史包袱,让错误更早暴露。

浙公网安备 33010602011771号