返回

前端百题斩【010】——剖析JavaScript执行上下文概念

前端

JavaScript执行上下文(Execution Context)是JavaScript标准吧一段代码执行所需的所有信息,其是执行的基础设施。理解JavaScript执行上下文对于理解JavaScript的运行机制非常重要。本文将从类型、包含内容、生命周期、执行过程等方面阐述JavaScript执行上下文概念。

JavaScript执行上下文类型

JavaScript执行上下文主要分为两种类型:

  • 全局执行上下文(Global Execution Context): 这是JavaScript程序的初始执行上下文,在JavaScript程序启动时创建。全局执行上下文中包含了所有全局变量和函数。
  • 局部执行上下文(Local Execution Context): 这是在函数调用时创建的执行上下文。局部执行上下文中包含了函数的形参、局部变量以及函数内部定义的函数。

JavaScript执行上下文包含的内容

JavaScript执行上下文包含了以下内容:

  • 变量环境(Variable Environment): 存储了执行上下文中声明的变量和函数。
  • 作用域链(Scope Chain): 存储了执行上下文中可以访问的变量和函数的作用域。
  • this指针(this): 指向当前执行上下文中的this对象。
  • 活动对象(Active Object): 指向当前执行上下文的活动对象。
  • 调用栈(Call Stack): 存储了当前执行上下文中正在执行的函数的调用记录。

JavaScript执行上下文生命周期

JavaScript执行上下文的生命周期分为四个阶段:

  • 创建阶段(Creation): 在执行上下文创建时,会创建变量环境、作用域链、this指针、活动对象和调用栈。
  • 执行阶段(Execution): 在执行上下文中执行代码。
  • 销毁阶段(Destruction): 在执行上下文执行完毕后,会销毁变量环境、作用域链、this指针、活动对象和调用栈。
  • 回收阶段(Recycling): 在执行上下文销毁后,会将其回收,以便重新使用。

JavaScript执行上下文执行过程

JavaScript执行上下文的执行过程如下:

  1. 创建全局执行上下文。
  2. 执行全局执行上下文中的代码。
  3. 在函数调用时,创建局部执行上下文。
  4. 执行局部执行上下文中的代码。
  5. 在函数返回时,销毁局部执行上下文。
  6. 重复步骤3和步骤4,直到所有代码执行完毕。
  7. 销毁全局执行上下文。

结论

JavaScript执行上下文是JavaScript程序执行的基础设施。理解JavaScript执行上下文对于理解JavaScript的运行机制非常重要。本文从类型、包含内容、生命周期、执行过程等方面阐述了JavaScript执行上下文概念。