执行上下文(Execution Context)和执行栈(Execution Stack)是 JavaScript 中用来管理代码执行的重要概念。
执行上下文是 JavaScript 中代码执行的环境抽象,它定义了代码被执行时的运行环境。每当 JavaScript 代码被执行时,都会创建一个执行上下文。
执行上下文包含了三种类型:
eval()
函数执行时会创建一个执行上下文。
每个执行上下文都包含了:
执行栈是用来存储执行上下文的一种数据结构,遵循先进后出(FILO)的原则。在 JavaScript 中,执行栈用来追踪代码的执行位置。当代码被执行时,执行上下文会被压入执行栈,当执行结束后,会从执行栈中弹出。
每当调用一个函数时,会创建一个新的执行上下文,并被推送到执行栈的顶部。当函数执行完成后,其对应的执行上下文会被从执行栈中弹出,控制权交回给前一个执行上下文。
这种执行上下文的入栈和出栈的过程形成了执行栈。如果执行栈变得太大(比如出现了过多的嵌套函数调用),会导致栈溢出(stack overflow)错误。
总结来说,执行上下文是描述代码执行环境的抽象概念,而执行栈是用来管理执行上下文的数据结构。JavaScript 引擎通过这些概念来跟踪和管理代码的执行过程。
Proudly powered by WordPress