JS 执行上下文的生命周期阶段有哪些

发布于 2023-10-26 05:26:29 字数 1319 浏览 35 评论 0

关键词:JS 执行阶段、JS 执行上下文生命周期

在 JavaScript 中,执行上下文的生命周期可以分为三个阶段:创建阶段(Creation phase)、执行阶段(Execution phase)和回收阶段(Cleanup phase)。

创建阶段(Creation phase):

  • 在创建阶段,JavaScript 引擎会做以下工作:
    • 创建变量对象(Variable
      object):变量对象是执行上下文中的一个重要部分,用于存储变量和函数声明。在该阶段,JavaScript 引擎会扫描当前上下文中的代码,并创建变量对象。变量对象包括函数的参数、函数声明和变量声明。对于全局上下文,变量对象是全局对象(如 window
      对象)。
    • 建立作用域链(Scope chain):作用域链用于解析变量的访问权限。JavaScript 引擎会根据当前执行上下文的词法环境和作用域嵌套关系来建立作用域链。
    • 确定 this 值:在创建阶段,JavaScript 引擎会确定 this 关键字的值,这取决于函数的调用方式(如函数调用、方法调用、构造函数调用等)。

执行阶段(Execution phase):

  • 在执行阶段,JavaScript 引擎会按照代码的顺序执行语句,执行以下操作:
    • 变量赋值:根据代码中的赋值操作,给变量分配内存并赋予相应的值。
    • 函数引用:根据代码中的函数调用,将函数的引用添加到变量对象中。
    • 代码执行:按照代码的顺序执行语句,包括表达式计算、条件判断、循环等操作。
    • 创建局部变量:当函数内部存在局部变量时,在执行到相应代码行时,会为局部变量分配内存空间。

回收阶段(Cleanup phase):

  • 在回收阶段,JavaScript 引擎会进行垃圾回收和释放内存等清理工作。当执行上下文不再被引用或执行完毕后,会触发回收阶段,进行以下操作:
    • 解除引用:将执行上下文中的变量和函数从变量对象中移除,解除对它们的引用。
    • 内存回收:对不再被引用的变量和对象进行垃圾回收,释放占用的内存空间。

这三个阶段共同构成了执行上下文的生命周期。创建阶段主要用于初始化执行上下文的变量和函数,建立作用域链和确定 this 值。执行阶段是实际执行代码的阶段,按照代码顺序执行语句。回收阶段主要用于清理执行上下文,释放内存空间。这个生

命周期的循环会在代码的执行过程中反复进行,直到所有的代码都执行完毕并且没有引用指向该执行上下文时,执行上下文将被彻底回收。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

对风讲故事

暂无简介

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文