531 字
3 分钟
JavaScript 核心 · 路线总览
NOTE本系列共 12 篇文章,是我做前端这十年里,反复回看、反复教新人的 JavaScript 核心脉络。不堆 API,只讲”为什么是这样”。
为什么重学 JS
工作头两年我以为”会写 JS”= 会 $.ajax、会写 for 循环。直到第一次遇到 setTimeout 顺序不对、this 指向莫名、原型链查不到属性——才明白 JS 的”怪”背后都有一套自洽的机制。
本路线就是把这些机制拆开讲透:
JavaScript 核心
├── 语言机制│ ├── 变量与作用域(提升、TDZ、作用域链)│ ├── 数据类型与隐式转换│ ├── 原型与原型链│ └── 继承的演进├── 运行时行为│ ├── 闭包│ ├── this 的四种绑定│ ├── 执行上下文与调用栈│ └── 事件循环与异步└── 工程化表达 ├── 函数式与高阶函数 ├── 模块化 └── 错误处理与调试这十年我踩过最痛的几个点
var的函数作用域:循环中用var声明i,闭包全拿到最后一个值——新人必踩。==的隐式转换:[] == false是true,[] == ![]也是true,面试地狱。this丢失:回调里this指向undefined(严格模式),排错排到怀疑人生。- 事件循环顺序:
Promise.then和setTimeout谁先执行,搞错就写出竞态 bug。 - 循环依赖:CommonJS 和 ESM 表现不同,升级打包器时集体暴雷。
每一篇我都会从一个真实场景/报错切入,再讲底层原理,最后给”以后怎么避”。
怎么读
- 前 8 篇是地基,建议按序,每篇代码自己敲一遍(别复制)。
- 遇到”为什么输出是这样”,用 DevTools 打断点看调用栈,比看十篇博客有用。
- 后 4 篇偏工程表达,可当工具箱按需查阅。
小结
JS 不难,难的是它”看似随意、实则严谨”。把作用域、原型、事件循环这三根支柱立住,剩下都是水到渠成。下一篇从最基础的变量与作用域讲起。
JavaScript 核心 · 路线总览
http://117.72.32.87/blog/posts/js-roadmap-00-overview/