执行上下文的生命周期分为两个阶段,创建阶段(初始化变量对象、活动对象、this 绑定)和执行阶段(逐行执行代码、更新变量值)。
论据/示例
创建阶段:
- 确定
this的值(this 绑定) - 创建词法环境(LexicalEnvironment)
- 创建变量环境(VariableEnvironment)
- 扫描代码,进行函数声明和变量声明提升
执行阶段:
- 逐行执行代码
- 赋值语句修改变量值
- 执行函数调用
console.log(a); // undefined(创建阶段已声明)
var a = 1;
console.log(a); // 1(执行阶段已赋值)