执行上下文(Execution Context)
一、是什么
执行上下文是 JS 代码运行时的环境。
👉 可以理解为:代码执行的“作用域容器”
二、三种执行上下文
- 全局执行上下文
- 函数执行上下文
- eval(不推荐)
三、执行过程
执行上下文分两个阶段: 创建阶段 → 执行阶段
1. 创建阶段
做三件事:
(1)确定 this
this = window / undefined / 调用对象
(2)创建变量环境(VO)
var a = 1;
function foo() {}
(3)建立作用域链
2. 执行阶段
逐行执行代码:
a = 1;
foo();
四、执行上下文栈(调用栈)
全局
↓
foo()
↓
bar()
先进后出(LIFO)
五、总结
执行上下文本质:“JS代码执行时的运行环境 + 生命周期管理”