Wil*_*een 2 javascript ecmascript-6
正在读取有关javascript执行上下文的一些信息。我正在阅读以下文章 Rupesh Mishra。
该文章指出,每次执行新功能时都会创建一个新的执行上下文。执行上下文确实具有两个阶段的创建阶段和执行阶段,其中代码逐行执行。
有人说,在创建阶段,JS引擎执行3件事:
this这是激活对象的说明:
创建激活对象或变量对象:激活对象是JS中的特殊对象,其中包含所有变量,函数参数和内部函数声明信息。由于激活对象是一个特殊对象,因此不具有dunder proto属性。
确实ES5+仍然有这个激活对象结构?如果不是,执行上下文创建阶段的当前步骤是什么?
不,ES5(及更高版本)不再使用标准JS对象存储变量。它使用词法环境(带有this值和作用域链),这些词法环境包含用于存储变量值的各种类型的环境记录。
执行上下文创建阶段的当前步骤是什么?
第10.4节“ 建立执行上下文”对此进行了讨论。
行为与ES3的行为没有太大区别(在所有旧代码仍然有效之后),只是使用新术语对其进行了描述。