QuickJS 引擎源码解析与实践- 掘金小册课程推荐/优惠

QuickJS 引擎源码解析与实践--掘金小册课程推荐/优惠

深入了解 JavaScript 引擎核心工作原理
hsy0
24讲 | 589人已学习
优惠价¥39.9
官网优惠购买
版权声明

本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。

课程详情

课程介绍

你将获得

  • 编译运行结合源码调试,高效理解 QuickJS 源码;

  • 原型虚拟机+解释器实现,一起搞懂 JS 指令关键原理;

  • 2 个实用功能,深度体验 QuickJS “过人”之处;

  • 运行过程+关键环节梳理,入门 JS 引擎学习。

作者介绍

hsy0,网易云音乐公共技术团队,资深前端开发偏全干工程师。曾发布过使用 Rust 编写的 JavaScript 引擎 Naive,以及 使用 JavaScript 来实现解释器和编译器系列教程

小册介绍

也许你还不知道 QuickJS 是什么,但你肯定听说过 V8 引擎。

V8 引擎是当今主流的 JavaScript 引擎(JS 引擎)之一,相比 V8 这类引擎动辄百万行的代码量,QuickJS 仅通过约 5.4 万 C 代码就达到了与之相媲美的完成度。

比如,从下图 QuickJS、V8、JSC 等引擎执行 Test262 的情况中,我们就能看出,QuickJS 与主流引擎对 ECMAScript 标准的支持度是差不多的。

QuickJS、v8、JSC 等引擎执行 Test262 的结果对比

那么, QuickJS是什么呢?

QuickJS 是由 Fabrice Bellard 编写的 JS 引擎,具有启动速度快、执行效率高、运行功耗低,支持 ES2020 等特点,被 Microsoft、Google、Intel 等知名公司在 FuchsiaCCFWasmnizer-ts 等项目中使用。

如果你正在寻找一个体积小且优秀的 JS 引擎,也许 QuickJS 将是一个合适的选择。当然,如果你已经很了解,或是在工作中用过 QuickJS,那一定已经知道它的优秀之处了。同时,如果你正想深入研究 JS 引擎,也建议从 QuickJS 入手。

无论是想要用好 QuickJS,还是深入研究 JS 引擎,都离不开对源码层面的研究和学习。

那在这本小册中,我们会通过分析 QuickJS 引擎的源码,向大家展示 JavaScript 引擎的核心工作原理,整体运行过程,带大家了解 QuickJS 内部实现,入门引擎学习

上面的思维导图已经比较清晰了,仅有两点需要突出介绍。

第一点,我们会先学习指令的执行,再学习指令的生成。这是因为,引擎的首要任务是完成用户编写的计算任务。直接编写字节码在理论上也是可行的,能够接收使用 JS 编写的计算任务是为了方便开发者而提供的编程接口。

第二点,「好之者不如乐之者」,我们不仅局限于源码解析,最后还会进行两个小型实践,一起为引擎增加 2 个新的实用功能,体验一把开发引擎的乐趣。

言而总之,学习 JS 引擎是有趣的,选择 QuickJS 着手是有效的。事不宜迟,让我们即刻出发吧!

适宜人群

不为无益之事,何以遣有涯之生。对于引擎实现的学习,可能很长时间内是无法变现的,因此它或许成了部分人眼中的「无益」之事。如果考虑这样的情况,那么对引擎实现感兴趣无疑是本课程最适宜的人群。

除了兴趣之外,还需要几点要求并不高的编程经验:

  • 可以熟练地使用 JavaScript 编写程序,接触过 TypeScript

  • 使用 C 语言至少编写并成功运行过 Hello World 程序

  • 使用过任意的 Linux 发行版、macOS、WSL

要求并不高的意思是,即使在阅读小册之前没有这些经验,利用网络准备起来也很快。

课程目录

  • 序言和约定
  • 指令执行:实现一个原型 VM
  • 指令执行:指令的定义与执行
  • 源码编译:编译、链接相关简介
  • 环境配置 :使用 WSL 和 VSCode
  • 源码编译:源码结构及如何编译
  • 指令执行:指令功能速查 - part1
  • 指令执行:基本数据类型 - Primitive values
  • 指令执行:基本数据类型 - JSObject
  • 指令执行:Closure 的作用与实现
  • 指令执行:基本数据类型 - 数组
  • 指令执行:运行时内存管理 - Garbage collector
  • 指令生成:整体解析过程简述
  • 指令执行:Generator 的设计与实现
  • 指令执行:Promise 以及 Async function 的底层实现
  • 指令生成:实现一个原型解析器
  • 指令生成:作用域和变量定义
  • 指令执行:指令功能速查 - part2
  • 指令生成:Closure 与函数对象
  • 指令生成:静态阶段优化方式
  • 功能拓展:实现 GC Dump
  • 指令执行:单线程与利用多核
  • 功能拓展:实现 Instr Debugger
  • 后记

作者介绍

前端
饭学专家

推荐

基于 Vite 的 SSG 框架开发实战 - 掘金小册课程推荐/分享/优惠/折扣
基于 Vite 的 SSG 框架开发实战
从 0 到 1 实现类 VitePress 框架,手把手带你造轮子
神三元
1063人已学习
优惠价¥199
掘金小册官网优惠购买
Java 并发:JUC 入门与进阶 - 掘金小册课程推荐/分享/优惠/折扣
Java 并发:JUC 入门与进阶
JUC 助力多线程协同工作,成就高效并发
源码学徒
786人已学习
优惠价¥9.9
掘金小册官网优惠购买
玩转 Trae AI 编程 - 掘金小册课程推荐/分享/优惠/折扣
玩转 Trae AI 编程
本小册带你玩转新一代 AI 编程工具 Trae。从核心功能到高阶技巧,贯穿 7 大实战项目,带你掌握 AI 编程思维,让你从 AI 的使用者,变为驾驭 AI 的创造者,高效完成各类开发任务。
智见君
36人已学习
优惠价¥49.9
掘金小册官网优惠购买
Elasticsearch 从入门到实践 - 掘金小册课程推荐/分享/优惠/折扣
Elasticsearch 从入门到实践
从零开始与你一起学习 Elasticsearch 7.x,为你揭秘 Elasticsearch 7.x 中的核心技术。
spoofer
2488人已学习
优惠价¥39.9
掘金小册官网优惠购买
你不知道的 Chrome 调试技巧 - 掘金小册课程推荐/分享/优惠/折扣
你不知道的 Chrome 调试技巧
熟练掌握 Chrome 调试技巧,直接提升工作效率。
dendoink
13750人已学习
优惠价¥0
掘金小册官网优惠购买
深入浅出微前端 - 掘金小册课程推荐/分享/优惠/折扣
深入浅出微前端
微前端的技术深度相对于 React 或者 Vue 框架要简单很多,但是它的广度却涵盖了前端知识的方方面面。本课程将会带你系统了解微前端的运行本质,有助于你在业务广度和技术深度上更进一层。
子弈
2885人已学习
优惠价¥59.9
掘金小册官网优惠购买