Skip to content

JavaScript:从基础到运行机制 ​

JavaScript 的语法可以很快写出来,理解一段程序为什么这样运行却需要耐心。一本系统的学习笔记,应该让前一节成为后一节的台阶:先认识值,才能讨论引用;先懂函数,才能理解闭包;先看懂同步执行,才能拆开异步顺序。

这本书按这样的顺序展开。每篇围绕一个具体问题解释概念,用小案例观察结果,再把反例和边界放回机制中。读完不仅要认得 API,还要能说明什么时候使用它、为什么得到这个结果。

从哪里开始 ​

如果你第一次系统学习,直接进入运行与语法。不必先安装一整套前端框架,也不需要带着完整项目来读。前面的例子尽量只使用已经介绍的知识;在后面的专题里,再把那些暂时收起的细节摊开。

已有经验时,可以从学习路线与完整目录定位薄弱知识。阅读原型前先理解对象,阅读并发前先理解 Promise,阅读引擎优化前先理解可观察语义;熟悉某种框架不一定意味着这些基础已经清楚。

全书十章 ​

从语言基础逐步连接到浏览器与运行机制的章节关系

章节这一章帮你理解什么
第一章|值、表达式与控制流从运行第一段代码开始,理解值、声明、分支、循环、转换与数值精度。
第二章|函数、作用域与调用方式理解函数如何接收输入、返回结果、捕获变量,以及调用方式怎样影响 this。
第三章|对象、集合与文本数据掌握对象与集合,再细分字符串、正则、日期、国际化和数据复制。
第四章|对象模型解释属性查找、原型、类、描述符、Symbol、Proxy 与 Reflect。
第五章|异步与事件循环从回调进入 Promise 和事件循环,学习等待、并发、取消与调度。
第六章|迭代、数据流与二进制把逐项消费延伸到生成器、异步迭代、数据流和二进制内存。
第七章|模块、运行环境与测试入口理解模块加载与绑定、运行环境、兼容方式和可重复的代码验证。
第八章|浏览器平台与页面状态学习 DOM、事件、表单、网络、存储、观察器、Worker 与组件化平台能力。
第九章|错误、安全与资源管理定位错误、理解信任边界与性能成本,管理内存和外部资源的生命周期。
第十章|执行机制与语言演进把执行上下文与引擎实现串起来,并学习现代协议、时间模型和规范阅读。

例子怎样运行 ​

未特别注明的 JavaScript 例子保存为 .mjs 文件,使用 node 文件名.mjs 运行。每个完整例子单独保存,避免不同例子的同名变量发生重复声明。示例中的预期输出说明的是值与顺序;控制台对对象的排版可能不同。

浏览器例子标出 HTML、DOM 或浏览器控制台前提。模块、跨源网络、Worker 等需要 HTTP 或安全上下文时,会说明条件。Node 与浏览器共享语言核心,但两者的全局对象、模块解析和部分调度规则不同。

代码中的错误示例用来观察异常或边界,按旁边的说明单独运行;不要把它们与正常例子拼接后,期待整个文件无错误结束。Temporal、显式资源管理等后续能力有独立支持说明。

一节笔记怎样读 ​

先读例子要解决的问题,在运行前预测结果。结果与预期不同时,沿解释找到导致差异的那一步,再改一个输入验证自己的理解。例如把一个普通数字改成 NaN,把自有属性删掉,或者让 Promise 拒绝;一次只变一个条件,更容易看到因果。

正文不要求每篇拥有同样数量的标题。字符串要讨论编码与文本,原型要画查找关系,异步要跟踪时序,日期要区分时长与日历含义。统一的是准确解释、可观察的例子和能找到的深入内容。

每篇末尾提供知识练习,答案集中在本章的独立答案页。先完成推理,再看参考代码和原因说明;答案用于比较理解,不以完成一个大项目作为阅读门槛。

资料如何支撑这本书 ​

内容研究同时使用现代 JavaScript 教程、You Don’t Know JS、Eloquent JavaScript 和冴羽 JavaScript 深入/专题系列,并以 ECMAScript 规范、MDN、Node 与浏览器定义校准事实。风格指南和课程材料补充可读性与练习思路。

不同资料的年代与讲解目标不同。旧实现的排序算法、旧环境的 API 限制、概括过宽的类型规则,都需要辨别适用范围。正文使用独立组织的中文解释与小案例,区分语言规定、宿主行为和特定引擎实现。

本书完整讲解目录中的语言与平台知识;完整后端开发、框架应用与大型项目在相应方向继续学习。

开始阅读

维护与版本演进 ​

语言基础按前面的顺序学习。维护旧项目时,先读作用域、原型、回调与模块,再进入旧项目维护,观察原程序的状态与导出关系,完成修复后才比较迁移。最新能力按版本演进给出的状态与独立环境学习;年度标准、提案完成和引擎可运行是三种不同信息。

用心记录每一步成长