执行上下文的生命周期分为两个阶段,创建阶段(初始化变量对象、活动对象、this 绑定)和执行阶段(逐行执行代码、更新变量值)。

论据/示例

创建阶段

  • 确定 this 的值(this 绑定)
  • 创建词法环境(LexicalEnvironment)
  • 创建变量环境(VariableEnvironment)
  • 扫描代码,进行函数声明和变量声明提升

执行阶段

  • 逐行执行代码
  • 赋值语句修改变量值
  • 执行函数调用
console.log(a); // undefined(创建阶段已声明)
var a = 1;
console.log(a); // 1(执行阶段已赋值)

关联