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 变化

普通函数直接调用时,严格模式下 thisundefined

function fn() {
  "use strict";
  console.log(this); // undefined
}

eval 和 arguments 限制

严格模式限制把 evalarguments 用作标识符,也限制 eval 对外部作用域的影响。

面试重点

  • 严格模式让静默失败变成显式错误。
  • 严格模式下普通函数直接调用的 thisundefined
  • ES 模块和类默认严格模式。
  • 严格模式禁止意外创建全局变量。

复习清单

一句话总结

附录 B 的核心是更安全的 JavaScript 执行规则:严格模式减少语言历史包袱,让错误更早暴露。

posted @ 2024-05-22 09:46  Li_pk  阅读(6)  评论(0)    收藏  举报