- 执行上下文就是指代码执行的作用域,js中常见的有全局上下文,函数上下文。
- JS引擎使用
执行上下文栈
来管理执行上下文
。上下文栈
确保了JS的执行过程
,我们知道JS是单线程的,所以每次需要创建新的上下文就会对应一个上下文栈,遵循先进后出的原则。
var a = 1;
function b() {
console.log(a)
function c() {
console.log('c')
}
c()
}
b()
全局入栈 -> b入栈 -> c入栈
| | | | | | | c |
| | | | | b | | b |
| | |global| |global| |global|
C出栈 -> b出栈 -> 全局出栈
| c | | | | | | |
| b | | b | | | | |
|global| |global| |global| | |
执行完毕