此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

调用栈是解释器(比如浏览器中的 JavaScript 解释器)追踪函数执行流的一种机制。当执行环境中调用了多个函数时,通过这种机制,我们能够追踪到哪个函数正在执行,执行的函数体中又调用了哪个函数。

每调用一个函数,解释器就会把该函数添加进调用栈并开始执行。

正在调用栈中执行的函数还调用了其他函数,那么新函数也将会被添加进调用栈,一旦这个函数被调用,便会立即执行。

当前函数执行完毕后,解释器将其清出调用栈,继续执行当前执行环境下的剩余的代码。

当分配的调用栈空间被占满时,会引发“堆栈溢出”错误。

一开始,我们得到一个空空如也的调用栈。随后,每当有函数被调用都会自动地添加进调用栈,执行完函数体中的代码后,调用栈又会自动地移除这个函数。最后,我们又得到了一个空空如也的调用栈。