现代 JavaScript 教程
这套教程面向正在准备中级前端面试、同时希望补牢语言基础的读者。内容以 ECMAScript 实时规范 为语言基线,以浏览器和现代 Node.js 的共同语义为主;版本敏感内容核对于 2026-07-21。
内容定位
这里不追求罗列所有 API,而是围绕面试中最常被继续追问的主线展开:值如何存储、对象如何查找属性、函数如何执行、异步任务如何衔接,以及语言提供了哪些元编程能力。
每个内容页都按两层组织:
- 快速回答:30~60 秒可直接口述的结论,配一个能现场写出的最小示例。
- 深入解答:解释执行机制、工程边界和常见错误,最后给出真实的面试追问。
快速导航
| 阶段 | 章节 | 你会解决的问题 |
|---|---|---|
| 入门 | JavaScript 简介 | JavaScript、ECMAScript 与宿主环境是什么关系 |
| 入门 | Hello, world! | 怎样在浏览器和 Node.js 中运行第一段程序 |
| 工具 | 在浏览器中调试 | 如何用断点、作用域和调用栈定位问题 |
| 基础 | 对象 | 属性访问、动态键、遍历与复制分别如何工作 |
| 基础 | 原始值与引用值 | 值传递、包装对象和相等比较有什么边界 |
| 函数 | 递归和堆栈 | 递归的终止条件、调用栈和复杂度如何分析 |
| 对象 | 属性标志和属性描述符 | 怎样精确控制属性的可写、可枚举和访问行为 |
| 对象 | 原型继承 | 属性查找链与构造函数的 prototype 是什么关系 |
| 面向对象 | Class 基础语法 | class、继承、私有字段和原型机制如何配合 |
| 稳定性 | 错误处理 | 同步异常、异步拒绝和自定义错误如何处理 |
| 异步 | 回调 | 回调的控制反转、错误优先约定和 Promise 化 |
| 迭代 | Generator | 可迭代协议与暂停执行如何协作 |
| 工程化 | 模块简介 | ESM 的静态结构、实时绑定和循环依赖 |
| 元编程 | Proxy 和 Reflect | 如何拦截对象内部操作且不破坏语言不变量 |
学习路径
第一次系统学习
按导航顺序学习即可。读完“回调”后,回头用“调试”章节观察调用栈与异步调用栈,再进入 Generator、模块和 Proxy,理解会更稳。
面试前快速复习
先只读每页的“快速回答”和“高频面试追问”。答不完整的题,再展开对应“深入解答”,并亲手运行其中的代码。
针对薄弱点补课
- 分不清“复制对象”和“共享对象”:先读原始值与引用值,再读对象。
- 说不清
class与原型:先读原型继承,再读 Class。 - 异步错误经常漏掉:先读错误处理,再读回调和模块。
- 框架响应式原理模糊:先读属性描述符,再读 Proxy 与 Reflect。
使用建议
代码示例默认可以直接粘贴到现代浏览器控制台或 Node.js 中运行;依赖 DOM、HTML 或多文件模块的示例会明确标注运行环境。面试练习时,建议先口述“快速回答”,再不看答案写出最小实现,最后用“深入解答”补充边界与取舍。
进一步查阅:ECMAScript 语言规范、MDN JavaScript 指南。
