JS调用栈和队列

1.栈

  先进后出

1.调用栈:

  是JS引擎追踪函数执行流程的一种机制,当执行环境中调用了多个函数时,通过这种机制,我们能追踪到哪个函数正在执行,执行的函数体又调用了哪个函数

函数的声明是不会进入栈中的,调用栈就是被调用的函数才会入栈

如一个函数:

当执行到第十行,average函数才会被调用,此时average函数入栈,此时average函数中又调用了sum函数,sum函数入栈:

 

当sum函数执行结束,sum函数就出栈。再接着执行sum函数后面的代码,当average函数执行结束,average函数出栈。

再接着执行到11行,console.log()入栈。执行结束console.log()出栈

此时JS执行环境处于空闲状态

 2.堆栈溢出

  最常见的一个场景就是递归,当使用递归,却没有一个递归结束的判断的时候。

如:

此时控制台会出现:

 

2.队列

  先进先出

posted @ 2020-12-24 10:50  俄罗斯方块  阅读(294)  评论(0编辑  收藏  举报