当前位置: 首页 > ops >正文

JavaScript中执行上下文和执行栈是什么?

JavaScript 执行上下文和执行栈的定义及工作原理

定义

执行上下文是指代码在执行时所处的具体环境,它包含了执行代码所需的全部信息,例如变量、函数以及可访问的对象。JavaScript 在运行时会动态创建执行上下文来管理和维护这些信息。

执行栈(Execution Stack),也被称为调用栈(Call Stack),是一种数据结构,用于跟踪程序中的执行流程。每当一段代码被执行时,都会为其创建一个新的执行上下文并将其推入执行栈中;当该段代码执行完毕后,对应的执行上下文会被移除出栈。


工作原理
1. 执行上下文的生命周期

执行上下文具有三个主要阶段:

  • 创建阶段
    当进入新的执行上下文时,JavaScript 引擎会在内存中分配空间,并完成一些初始化操作。这包括设置 this 值、处理函数参数、解析变量声明和函数声明等。此过程通常称为“预编译”,其中涉及以下几个步骤:

    • 创建活动对象(Activation Object, AO)。AO 是一种特殊的对象,在这个对象中保存了当前作用域内的所有变量、函数声明及其初始值。
    • 将形参名和局部变量作为 AO 的属性名,默认值设为 undefined
    • 如果存在同名的函数声明,则优先将函数体赋值给 AO 中对应的名字。

    函数预编译的过程可以更好地解释为什么某些行为会发生,例如变量提升现象。<

http://www.xdnf.cn/news/6174.html

相关文章:

  • Linux `whoami` 命令深度解析与高阶应用指南
  • 【USRP】在linux下安装python API调用
  • 保姆级!MeloTTS部署 且支持流式接口
  • Vue3在使用渲染函数h时候使用v-loading
  • 最小二乘拟合曲线
  • C#强类型枚举的入门理解
  • C++矩阵操作:正交矩阵(旋转矩阵)
  • 级联与端到端对话系统架构解析:以Moshi为例
  • 材料×工艺×AI:猎板PCB重构汽车电子四层板技术逻辑
  • 基于大模型的TIA诊疗全流程智能决策系统技术方案
  • 经典还原反应解析:Wolff-Kishner机制与黄鸣龙改进法
  • DeepSeek部署中常见的问题及解决方案
  • 在 Android 的`Handler` 和 `Binder
  • 学前数学思维:等量代换
  • 多因子线性回归实战
  • fiftyone-dataset使用基础
  • 零基础学Java——终章:核心知识点与面试总结
  • Vue百日学习计划Day4-8——Gemini版
  • 从 Vue3 回望 Vue2:逻辑复用新思维——从 Mixins 到 Composables
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的智能零售柜技术方案
  • 「数学::博弈论」Nim游戏(尼姆游戏)/ Luogu P2197(C++)
  • 高压启动电路--学习记录
  • 反向操作:如何用AI检测工具优化自己的论文“人味”?
  • Lightpanda开源浏览器:专为 AI 和自动化而设计的无界面浏览器
  • 小白月赛——命运之弹
  • python:mitmproxy代理服务搭建
  • C——俄罗斯方块
  • Android 适配之——targetSdkVersion 30升级到31-34需要注意些什么?
  • 使用spring ai实现简单会话
  • PHP 编程:现代 Web 开发的基石与演进