JS执行上下文栈

Posted fzgt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS执行上下文栈相关的知识,希望对你有一定的参考价值。

执行上下文栈

 技术图片

整个代码中一共产生了几个执行上下文对象?  n+1

n 是调用函数的次数(函数内的调用次数也算)  1 window对象

 

1.在全局代码执行前,JS引擎就会创建一个栈来存储管理所有的执行上下文对象

2.在全局执行上下文(window)确定后,将其添加到栈中(压栈)

3.在函数执行上下文创建后,将其添加到栈中(压栈)

4.在当前函数执行完后,将栈顶的对象移除(出栈)

5.当所有的代码执行完后,栈中只剩下window

 技术图片

 

 

调用bar函数时,栈内的变化如↑图。

执行谁的时候,谁在最上边。

用后进先出来描述上面这个操作,比先进后出要更准确。

 技术图片

 

以上是关于JS执行上下文栈的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript进阶之执行上下文和执行栈

JS深入理解闭包/作用域(scope)作用域链/执行上下文和执行栈

理解运用JS的闭包高阶函数柯里化

JS中的执行上下文

上下文与执行栈

上下文与执行栈