JavaScript中的执行上下文和堆栈是如何相互关联并影响程序执行的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2350个文字,预计阅读时间需要10分钟。
什么是执行上下文?
JavaScript的执行环境非常重要,当JavaScript代码在运行时,会被预处理器处理为以下几种情况之一:
- Global code - 首次执行代码的默认环境。- Function code - 当执行流进入函数时创建的环境。
什么是执行上下文?
JavaScript的执行环境非常重要,当JavaScript代码在行时,会被预处理为以下情况之一:
- Global code - 首次执行代码的默认环境。
- Function code - 每当执行流程进入函数体时。
- Eval code - 要在eval函数内执行的文本。
你可以阅读大量涉及作用域的在线资料,不过为了使事情更容易理解,让我们将术语“执行上下文”视为当前代码的运行环境或作用域。接下来让我们看一个包含global和function / local上下文的代码示例。
这里没有什么特别之处,我们有一个由紫色边框表示的全局上下文,和由绿色,蓝色和橙色边框表示的3个不同的函数上下文。 只能有1个全局上下文,可以从程序中的任何其他上下文访问。
你可以拥有任意数量的函数上下文,并且每个函数调用都会创建一个新的上下文,从而创建一个私有作用域,其中无法从当前函数作用域外直接访问函数内部声明的任何内容。 在上面的示例中,函数可以访问在其当前上下文之外声明的变量,但外部上下文无法访问在其中声明的变量或函数。
本文共计2350个文字,预计阅读时间需要10分钟。
什么是执行上下文?
JavaScript的执行环境非常重要,当JavaScript代码在运行时,会被预处理器处理为以下几种情况之一:
- Global code - 首次执行代码的默认环境。- Function code - 当执行流进入函数时创建的环境。
什么是执行上下文?
JavaScript的执行环境非常重要,当JavaScript代码在行时,会被预处理为以下情况之一:
- Global code - 首次执行代码的默认环境。
- Function code - 每当执行流程进入函数体时。
- Eval code - 要在eval函数内执行的文本。
你可以阅读大量涉及作用域的在线资料,不过为了使事情更容易理解,让我们将术语“执行上下文”视为当前代码的运行环境或作用域。接下来让我们看一个包含global和function / local上下文的代码示例。
这里没有什么特别之处,我们有一个由紫色边框表示的全局上下文,和由绿色,蓝色和橙色边框表示的3个不同的函数上下文。 只能有1个全局上下文,可以从程序中的任何其他上下文访问。
你可以拥有任意数量的函数上下文,并且每个函数调用都会创建一个新的上下文,从而创建一个私有作用域,其中无法从当前函数作用域外直接访问函数内部声明的任何内容。 在上面的示例中,函数可以访问在其当前上下文之外声明的变量,但外部上下文无法访问在其中声明的变量或函数。

