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

前端执行上下文(简版)

执行上下文(Execution Context)是Javascript中最重要的基础概念之一,它决定了代码如何被解析和执行。

一、执行上下文基础概念

1、什么是执行上下文?
执行上下文是JavaScript代码执行的环境,它包含代码运行时所需的所有信息:

  • 变量储存: 变量和函数的存储位置
  • 作用域解析: 确定变量和函数的可访问性
  • this绑定: 确定当前代码中this的值
  • 代码执行流程: 控制代码的执行顺序

2、执行上下文的生命周期
请添加图片描述

二、执行上下文的类型

1、全局执行上下文(Global Execution Context)

  • 代码首次执行时创建
  • 整个程序只有一个全局上下文
  • 在浏览器中,全局对象是window
  • 生命周期:程序结束才销毁

2、函数执行上下文(Function Execution Context)

  • 每次函数被调用时创建
  • 每个函数调用都有自己的执行上下文
  • 生命周期:函数执行完毕后销毁

3、Eval执行上下文(Eval Execution Context)

  • eval() 函数内部代码执行时创建
  • 不推荐使用,存在安全风险

三、执行上下文的创建阶段

在代码执行前,JavaScript引擎会创建执行上下文,并进行以下操作:
1、创建变量对象(Variable Object,VO)
变量对象存储当前上下文中所有的变量和函数声明
2、建立作用域链(Scope Chain)
作用域链决定变量的可访问性:
3、确定 this 值
this 的值在创建阶段确定

四、执行阶段

在创建阶段完成后,进入执行阶段:
1、变量赋值
2、函数引用解析
3、代码逐行执行

五、执行上下文栈(Execution Context Stack)

JavaScript使用调用栈管理执行上下文

function first() {console.log('First');second();
}function second() {console.log('Second');third();
}function third() {console.log('Third');
}first();

执行上下文栈变化:请添加图片描述

总结:执行上下文核心要点

1、三层结构: 全局、函数、eval山中执行上下文
2、两阶段生命周期: 创建阶段(VO、作用域链、this)和执行阶段
3、变量提升: 函数声明完全提升,变量声明部分提升
4、作用域链: 决定变量访问的链式结构
5、闭包本质: 函数保留其创建时的词法环境
6、调用栈管理: 后进先出(LIFO)的栈结构
7、ES6增强: 块级作用域和词法环境
8、调试工具: 利用调用栈和开发者工具进行调试

http://www.dtcms.com/a/325452.html

相关文章:

  • 2025.8.6 图论(1)Solution
  • 大模型提示词工程实践:聊天机器人定制与实践-打造个性化任务助手
  • Oracle 19C 配置TAF
  • 投资光伏怕成本超标?鹧鸪云系统配置最优方案
  • 微算法科技(NASDAQ:MLGO)通过蚁群算法求解资源分配的全局最优解,实现低能耗的区块链资源分配
  • 【深度学习计算性能】03:自动并行
  • Apache Ignite 生产级的线程池关闭工具方法揭秘
  • 【C++】封装哈希表模拟实现unordered_set和unordered_map
  • 【10】微网优联——微网优联 嵌入式技术一面,校招,面试问答记录
  • 【Linux让旧电脑重获新生的奇妙魔法】
  • 【k8s】k8s安装与集群部署脚本
  • Godot ------ 平滑拖动03
  • 量子神经网络:从NISQ困境到逻辑比特革命的破局之路
  • Day 37:早停策略和模型权重的保存
  • C语言指针(四):字符指针、数组指针与函数指针的实战指南
  • Unity大型场景性能优化全攻略:PC与安卓端深度实践 - 场景管理、渲染优化、资源调度 C#
  • 在Mac 上生成GitLab 的SSH 密钥并将其添加到GitLab
  • 在 .NET Core 5.0 中启用 Gzip 压缩
  • AI时代基于云原生的 CI/CD 基础设施 Tekton
  • Redis Sentinel 中 `sentinel resolve-hostnames yes` 的必要性解析
  • C#图形库SciChart与ScottPlot及LiveCharts2对比
  • Linux客户端利用MinIO对服务器数据进行同步
  • 掌握while循环:C语言编程基础
  • Unity跨平台性能优化全攻略:PC与安卓端深度优化指南 - CPU、GPU、内存优化 实战案例C#
  • 《番外:Veda的备份,在某个未联网的旧服务器中苏醒……》
  • 扩展运算符...作用介绍
  • 关系型数据库:原理、演进与生态全景——从理论基石到云原生的深度巡礼
  • 国内 Mac 开启 Apple Intelligence 教程
  • 深入浅出JVM:Java虚拟机的探秘之旅
  • 第2节 PyTorch加载数据