执行上下文(Execution Context)

一、是什么

执行上下文是 JS 代码运行时的环境。

👉 可以理解为:代码执行的“作用域容器”

二、三种执行上下文

  1. 全局执行上下文
  2. 函数执行上下文
  3. eval(不推荐)

三、执行过程

执行上下文分两个阶段: 创建阶段 → 执行阶段

1. 创建阶段

做三件事:

(1)确定 this

this = window / undefined / 调用对象

(2)创建变量环境(VO)

var a = 1;
function foo() {}

(3)建立作用域链

2. 执行阶段

逐行执行代码:

a = 1;
foo();

四、执行上下文栈(调用栈)

全局
 ↓
foo()
 ↓
bar()

先进后出(LIFO)

五、总结

执行上下文本质:“JS代码执行时的运行环境 + 生命周期管理”