自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 JS事件深度解析四 事件的循环和异步

摘要 本文深入解析了JavaScript中事件、异步和事件循环三个核心概念的相互关系与运作机制。 事件(Event):作为被动信号载体,负责记录系统触发的状态变化(如鼠标点击),但不具备执行能力。 异步(Asynchrony):本质是单线程环境下的时间调度策略,通过"登记-移交-回调"机制解决I/O阻塞问题,将耗时操作交由宿主环境的后台线程处理。 事件循环(Event Loop):宿主环境(如浏览器)的核心调度系统,持续监控调用栈状态,当栈清空时从任务队列中提取待执行任务。包含宏任务队列和微任务队列两种优先

2026-06-06 09:55:19 393

原创 V8引擎精品漫游指南--Ignition篇(下 二) JavaScript 栈帧详解

在前面,我们说 JSEntry Stub这段极速的底层汇编跳板代码,会在操作系统的物理堆栈上,强行砸入一个极其特殊的栈帧——Entry Frame (入口帧),在我们的片场宇宙设定中,jsentry stub 的作用是:驻守 C++ 与 JS 边界。砸下防爆门,并在 Entry Frame 中保存返回地址/寄存器现场/入口状态,确保 C++ 与 JS 间的调用契约被完整维护,防止异常穿透。它是 V8 引擎提前写好的一段极短、极速的机器指令。它的本质是 CPU 要去执行的“动作”。

2026-05-11 11:43:12 431

原创 V8引擎精品漫游指南--Ignition篇(下 一) 动态执行前的事情

本文深入解析了JavaScript执行机制中的核心概念,重点阐述了以下几个关键点: 指出"预编译"是JS教学中的伪术语,规范中应称为"执行上下文创建阶段",并详细说明了JS代码执行的四个宏观阶段:词法分析、语法分析、执行上下文创建和执行阶段。 分析了全局创建阶段与函数创建阶段的本质区别,包括作用域范围和变量遮蔽现象。 阐明了AST静态结构与动态执行阶段的关系,用建筑蓝图和实际建造的比喻,解释了闭包形成的动态实例化过程。 区分了词法环境(存储变量)和作用域链(查找路径)

2026-05-02 00:49:50 399

原创 V8引擎精品漫游指南--Ignition篇(中) AST详解 字节码的生成

本文深入解析了V8引擎中AST(抽象语法树)的结构与作用。AST作为连接源代码和字节码的关键中间表示,在V8内部以C++对象树形式存在,同时也支持JSON格式输出。文章通过火车头-车厢-货物的生动比喻,详细说明了变量声明的三层嵌套结构(VariableDeclaration→VariableDeclarator→Id/Init),并指出这种设计保证了语法树的通用性,能够兼容各种JS语法形态。此外,AST在前端工程化(Babel/ESLint/Prettier)中扮演着重要角色,其标准化格式(ESTree)已

2026-02-23 10:08:50 914

原创 V8引擎精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容

本文介绍了V8引擎中Ignition解释器的基本原理和工作机制。Ignition作为字节码解释器,将JavaScript的AST转换为紧凑的字节码,并在虚拟环境中执行。文章重点阐述了Ignition的"虚拟寄存器+累加器"架构,其中累加器(acc)作为核心临时存储单元,有效减少了指令参数数量。通过类比"老师傅与随身腰包"生动解释了Lda、Star等基本指令的工作原理。同时详细介绍了栈帧结构、槽位(slot)概念及其内存分配方式,包括64位系统下8字节的槽位大小和Tag

2026-02-04 03:32:54 777

原创 V8引擎精品漫游指南--解析篇 语法解析 AST 作用域 闭包 。。。一文通关

1识别-2流式处理-3切分-4预解析和全量解析-5解析概述-6解析具体过程.表达式的解析-7声明的解析-8函数的解析-9变量的解析-10类的解析-11语句的解析。其中包含单个完整的知识点分散在各部分:闭包 作用域 作用域链/树 暂时性死区。。。可搜索关键字查找。

2025-12-26 19:01:57 1235

原创 javascript 深度解析 事件 事件循环 事件对象 事件的传播 及异步

JavaScript事件是宿主环境(如浏览器)提供的异步消息机制,通过EventTarget接口实现。事件来源包括DOM交互、网络请求、UI操作等,浏览器将其映射为不同优先级的任务队列(如输入事件队列优先级最高)。事件本质是观察者模式的实现,DOM节点为被观察者,回调函数为观察者。DOM事件具有捕获/冒泡传播特性,可阻止默认行为;非DOM事件(如网络请求、WebSocket)则直接触发无传播。每个事件都携带event对象包含现场数据,遵循"观察者模式+携带数据+状态改变"三要素。

2025-12-10 04:57:22 1391 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除