JS 执行上下文的生命周期阶段有哪些
关键词:JS 执行阶段、JS 执行上下文生命周期
在 JavaScript 中,执行上下文的生命周期可以分为三个阶段:创建阶段(Creation phase)、执行阶段(Execution phase)和回收阶段(Cleanup phase)。
创建阶段(Creation phase):
- 在创建阶段,JavaScript 引擎会做以下工作:
- 创建变量对象(Variable
object):变量对象是执行上下文中的一个重要部分,用于存储变量和函数声明。在该阶段,JavaScript 引擎会扫描当前上下文中的代码,并创建变量对象。变量对象包括函数的参数、函数声明和变量声明。对于全局上下文,变量对象是全局对象(如window
对象)。 - 建立作用域链(Scope chain):作用域链用于解析变量的访问权限。JavaScript 引擎会根据当前执行上下文的词法环境和作用域嵌套关系来建立作用域链。
- 确定 this 值:在创建阶段,JavaScript 引擎会确定
this
关键字的值,这取决于函数的调用方式(如函数调用、方法调用、构造函数调用等)。
- 创建变量对象(Variable
执行阶段(Execution phase):
- 在执行阶段,JavaScript 引擎会按照代码的顺序执行语句,执行以下操作:
- 变量赋值:根据代码中的赋值操作,给变量分配内存并赋予相应的值。
- 函数引用:根据代码中的函数调用,将函数的引用添加到变量对象中。
- 代码执行:按照代码的顺序执行语句,包括表达式计算、条件判断、循环等操作。
- 创建局部变量:当函数内部存在局部变量时,在执行到相应代码行时,会为局部变量分配内存空间。
回收阶段(Cleanup phase):
- 在回收阶段,JavaScript 引擎会进行垃圾回收和释放内存等清理工作。当执行上下文不再被引用或执行完毕后,会触发回收阶段,进行以下操作:
- 解除引用:将执行上下文中的变量和函数从变量对象中移除,解除对它们的引用。
- 内存回收:对不再被引用的变量和对象进行垃圾回收,释放占用的内存空间。
这三个阶段共同构成了执行上下文的生命周期。创建阶段主要用于初始化执行上下文的变量和函数,建立作用域链和确定 this
值。执行阶段是实际执行代码的阶段,按照代码顺序执行语句。回收阶段主要用于清理执行上下文,释放内存空间。这个生
命周期的循环会在代码的执行过程中反复进行,直到所有的代码都执行完毕并且没有引用指向该执行上下文时,执行上下文将被彻底回收。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论