JavaScript
动态类型脚本语言
- 001入门JavaScript 是什么:你的第一门编程语言面向完全零基础读者,讲清 JavaScript 的定位、能做什么、在哪里运行,并写出第一段可执行的代码。
- 002入门JavaScript 概述与运行环境:代码到底跑在哪以「同一份代码为什么在浏览器和 Node 里行为不同」为问题主线,建立运行环境 = 引擎 + 宿主 API 的心智模型,讲清 ECMAScript 与版本节奏,附动手实验与调试实录。
- 003入门程序结构基本语法:写出第一个多行程序以「在浏览器控制台把单行命令攒成多行程序」为主线,讲透语句与分号、代码块与缩进、注释、console.log 调试习惯,用播放列表打印程序贯穿全篇,附 SyntaxError 调试实录与四类练习。
- 004入门变量与数据类型:给数据起名字用「给数据起名字」讲透 let/const/var 取舍与 var 事故现场,盘点七种原始类型、typeof 的历史 bug、模板字符串与 == 的坑,附 ReferenceError/TypeError 调试实录。
- 005中级数据类型与运算符:让数据算起来用「排行榜算平均分、购物车算总价」讲透算术运算符与 % 的三用途、比较与逻辑、短路求值、优先级、拼接对比模板字符串,附 NaN 自检与真实报错调试实录。
- 006中级控制流:让程序会判断、会重复用猜数字游戏讲透 if/else、switch 取舍、for/while/for-of 三种循环与 break/continue,附 if 条件里写 = 的事故现场与 ESLint 真实报错、const 循环变量报错、死循环急救,含预测题与修 Bug 练习。
- 007中级对象与数组:一百个玩家怎么办从「一个玩家三行变量,一百个玩家怎么办」讲起:对象字面量、点与方括号取值的分界、数组下标与 push/pop、玩家数组的嵌套结构,附 Cannot read properties of undefined 真实报错与三步定位、预测题与挑战题。
- 008入门Map、Set 与弱引用集合键控集合专题:Map 与对象的键类型/顺序/size 差异、Set 去重与集合运算、WeakMap/WeakSet 的弱引用与 GC 关系,含 SKU 去重、过期缓存与 DOM 元数据三个工程场景。
- 009中级函数基础:不重复自己从「结算逻辑复制三遍,改一处漏两处」讲起:参数与返回值、函数声明与表达式、函数是值、rest 参数,附 xxx is not a function 与 Cannot access 调试实录。作用域链与闭包拆分至 085 篇专讲。
- 010中级作用域链与闭包:函数记住了出生地从「循环里绑五个按钮,点谁都是同一个数」讲起:作用域链由内向外查找、同名遮蔽、三层嵌套实验、var 挂载 window 而 let 不挂载、隐式全局陷阱、闭包计数器与私有变量、IIFE 固定循环计数器,附 ReferenceError 与误改全局变量两则调试实录。
- 011中级数组高阶方法:排行榜不需要三段循环从「排行榜要筛选高分、算平均、找第一名,三段 for 循环写三遍」讲起:map/filter/reduce/sort/find/some/every 贯穿同一份玩家数组、回调函数是 080「函数是值」的落地、链式调用的可读性边界、用 reduce 手写 map/filter 的理解实验,附 x.map is not a function 调试实录。
- 012中级this 关键字:四条规则,一个例外从「同一个 sayHi,player 调用正常、摘下来单独调用就崩」讲起:默认/隐式/new/显式四条绑定规则按判定顺序各配预期输出、箭头函数词法 this 是规则外的唯一例外、事件处理器与回调丢 this 的修复,附 Cannot read properties of undefined (reading 'name') 调试实录。
- 013中级正则表达式:从"读不懂的天书"到"顺手的小工具"以「给文档站写死链检查脚本,要提取全部 Markdown 链接」为主线,一次讲透字符类、量词、贪婪与懒惰、锚点、分组捕获,配六个方法入口与 lastIndex 陷阱,并给出灾难性回溯(ReDoS)的成因与三条防身规则。
- 014中级具名捕获组用具名捕获组把正则结果从"第 3 个括号"变成"year",覆盖三处语法、未参与匹配、替换与常见坑。
- 015中级Unicode 属性转义用 \p{...} 让正则认识中文、全角数字与 Emoji:属性三大类、u 标志、Emoji 陷阱与国际化校验实战。
- 016中级自定义错误类型:让上层分得清"哪里错了、为什么错"以「接口报错只有一句 Request failed,分不清超时还是没登录」为主线,讲透七种内置错误的诊断含义、class extends Error 标准写法、cause 错误链与 AggregateError 批量失败,附 JSON.stringify 吞错误信息、堆栈还原等工程实录。
- 017中级高阶函数:把"怎么做"当成参数传以「命令面板的过滤逻辑越写越像复制粘贴」为问题主线,讲透"函数是值":把函数当参数传、当返回值还,亲手写出 find 与 once,附 fn 与 fn() 混淆、map(parseInt) 三参陷阱等调试实录。
- 018中级递归与尾调用:函数自己调用自己,栈为什么会爆以「嵌套评论树要统计总数,for 循环写不动」为问题主线,讲透递归三要素与调用栈模型,亲手遍历树形数据、排查 Maximum call stack size exceeded,并给出尾递归改写与"各引擎到底支不支持 TCO"的 2026 年实情。
- 019中级柯里化与偏函数:参数先收一半,剩下慢慢给以「同一个前缀在几十处调用里复制粘贴」为问题主线,讲透偏函数固定参数、柯里化分批收参、pipe/compose 组合管道,亲手实现 curry 与 pipe,附漏调一层括号、bind 首参误传对象等调试实录。
- 020中级原型与继承:方法只写一次,一百个玩家共享从「给一百个玩家挂同一个升级方法,难道要复制一百份」讲起:函数的 prototype 样板间、Object.getPrototypeOf 实验看见 __proto__ 链、属性查找沿链上溯与「读上溯、写只写自己」、new 的四步拆解(衔接 this 篇的 new 绑定)、class 是原型的语法糖与类字段分工,附方法挂错地方的 TypeError 与循环引用打印陷阱调试实录。
- 021进阶原型链深水区:三角关系与 class 本质180 篇搭心智模型,本篇拆机制:prototype、__proto__、constructor 三角关系完整推演,Object.create 与 setPrototypeOf 的用法、纯净字典与性能代价,借用构造函数、组合寄生到 class extends 与 super 的继承演进对照,属性遮蔽与删除的边界情况,手写 instanceof 与三类失效场景,附 super 之前摸 this 的 ReferenceError 调试实录。
- 022中级深拷贝与浅拷贝:你复制的是门牌号,还是房子以「草稿快照被原文连坐修改」为问题主线,讲透值语义与引用语义、赋值/浅拷贝/深拷贝三层区别,亲手用 structuredClone 与 WeakMap 标记法写支持循环引用的深拷贝,附 JSON 静默变形、freeze 只冻一层、原型链丢失等陷阱实录。
- 023入门JSON 序列化与解析JSON.stringify/parse 的参数全景:replacer/reviver/space、toJSON 钩子、循环引用与 Date/RegExp/undefined 的序列化规则、与 structuredClone 的分工,含草稿存取、日志脱敏与待办导入导出三个场景。
- 024中级Object 静态方法:天天要摸的扳手一次配齐以「对象加工的四个日常任务」为主线,一次配齐 keys/values/entries、fromEntries、groupBy、hasOwn、assign、is 六件套,讲透属性描述符与 configurable 单向门,附遍历顺序数字键前置、Object.create(null) 判存在翻车等实录。
- 025中级ES6+ 现代语法速通:读懂今天的 JS 代码以「打开现代项目源码,满屏符号看不懂」为问题主线,一次收齐日常必用的现代语法:解构、展开与剩余、可选链、空值合并、逻辑赋值、类字段与私有字段,附解构默认值只认 undefined、?. 不能赋值等陷阱,并给出 2026 年各提案的真实落地状态。
- 026入门ArrayBuffer 与类型化数组以读取图片头与解析 WAV 为例,掌握 ArrayBuffer、类型化数组与 DataView,以及它们在 Worker 传输中的角色。
- 027进阶递归算法模式:互递归、记忆化、分治与回溯承接递归基础的进阶模式集:互递归、记忆化驯服树形递归、二分查找与快速排序的分治骨架、回溯的"选择-递归-撤销"三拍子、显式栈与队列把超深树迭代化,附 CPS 续延与蹦床的完整实现,每类模式配可运行代码与验收标准。
- 028中级函数式模式实战:管道调试、HOC 与中间件把高阶函数与柯里化用到工程里的四个模式:tap/trace 给管道插日志、占位符与右偏函数、React 高阶组件 withXxx、Express 风格中间件引擎亲手实现;附链式调用中间数组开销的测量方法与"何时手写 for"的判断标准。
- 029中级异步编程入门:网络请求等一秒,页面不能卡一秒从「网络请求要等一秒,页面不能卡死一秒」讲起:单线程与事件循环直觉模型、回调与厄运金字塔、Promise 三态与链式、async/await、fetch 最小示例、try/catch 与 .catch 分工,附 Unhandled promise rejection 与 Failed to fetch 调试实录。
- 030入门定时器与调度setTimeout/setInterval 的返回值与清除、递归 setTimeout 与 setInterval 的差别(轮播为什么用前者)、时钟与倒计时的毫秒换算链、页面隐藏暂停,含轮播、时钟、倒计时三个微项目。
- 031中级Promise 构造器深入从一个"外部可控的 Promise"说起:状态机、then 的微任务时序、值穿透、thenable 与 ES2024 的 withResolvers。
- 032中级Promise 静态方法Promise静态方法详解:allSettled、any、withResolvers及传统方法对比。
- 033进阶异步并发控制JavaScript异步并发控制:p-limit模式、队列实现与并发限制策略。
- 034进阶事件循环:setTimeout(fn, 0) 为什么不是立刻执行以「setTimeout(fn, 0) 为什么不是立刻执行」引入事件循环心智模型:单线程与调用栈、宏任务队列与微任务队列、一次打印顺序实验讲透执行规则、微任务清到枯竭、0 毫秒的真实含义、rAF 所在一环只做预告,附微任务饿死宏任务与忙等心跳两则调试实录。
- 035进阶事件循环深水区:清空时机、Node 六阶段与调度选型事件循环深水区专题:微任务每个宏任务后清空的实证、Node 事件循环六阶段(timers/pending/poll/check/close)、setImmediate 与 process.nextTick 的排班、rAF 与 rIC 调度时机对比、两道完整推演逐行给出预期输出与推导依据。
- 036进阶迭代器辅助方法Iterator Helpers提案详解
- 037中级生成器函数从"加载 2GB 日志会爆内存"讲起:惰性序列、yield 的暂停与恢复、双向通信、yield* 与异步生成器。
- 038进阶Proxy 与 Reflect深入解析 ES6 Proxy 与 Reflect 的元编程理论、代理不变量、Vue 3 响应式实现、MobX 代理模式等高级主题
- 039进阶Proxy 与 Reflect 实际应用JavaScript 元编程双壁 Proxy 与 Reflect 的形式化语义、陷阱(Trap)体系、Vue3 响应式实现、Immer/MobX/Solid 对比、企业级验证/缓存/日志/RPC 代理实践,对标 MIT 6.831 与 CMU 17-445 软件工程课程水准。
- 040进阶JavaScript 垃圾回收与内存管理用可达性、标记清除、分代回收三个模型讲透 JavaScript 的自动内存管理,并给出写代码时避免内存泄漏的实用清单。
- 041进阶闭包的内存泄露与优化JavaScript 闭包导致的内存泄露原理、形式化建模、检测方法与工程级优化策略,对标 V8 引擎实现与现代前端框架实践。
- 042进阶内存泄漏排查JavaScript内存泄漏排查详解:Chrome DevTools Memory面板、堆快照、分配时间线。
- 043中级JavaScript 模块化CommonJS、ES Modules 与模块打包工具。
- 044进阶模块动态导入与代码分割JavaScript 模块动态导入 import() 与代码分割策略深度剖析,涵盖 ES2020 规范、V8 模块图、Webpack/Vite/Rollup 实现细节与企业级性能优化。
- 045进阶模块打包原理与 Tree Shaking讲清打包器把模块变成浏览器可运行文件的原理,以及 Tree Shaking 为什么只能"摇掉"没被用到的 ESM 导出。
- 046中级DOM 操作与事件:按钮点了没反应的时候从「按钮点了没反应——你还没认识 DOM」讲起:DOM 树与节点、querySelector 查询、textContent 与 innerHTML 的取舍(XSS 一句话红线)、classList、addEventListener 与事件对象、事件冒泡初次现身,以「添加待办 + 完成切换」收尾,附 Cannot read properties of null 与 defer 调试实录。
- 047入门DOM 事件系统深入事件流三阶段实验、preventDefault 与 stopPropagation 的分工、事件委托两段实战(列表高亮与 data-* 分组分发)、常见事件族与 removeEventListener 正确姿势,含三个真实翻车现场的纠错练习。
- 048中级浏览器观察器与跨标签页通信三个 Observer(IntersectionObserver/MutationObserver/ResizeObserver)与 Clipboard、BroadcastChannel:把「是否可见、DOM 变没变、尺寸变没变」的判断下沉到浏览器内核,以及同源多标签页的状态同步,附懒加载、表单脏检查、登录态同步三个完整场景与未断开观察导致的内存泄漏实录。
- 049中级BOM 浏览器对象模型浏览器对象模型(BOM)原理、API 体系、工程实践与规范演进
- 050中级宿主环境与 Web API 总览浏览器宿主环境与 Web API 的分层总览:ECMAScript 内核之外还有什么、宿主对象五元组模型、各能力族(网络、存储、观察器、线程、设备能力)的设计动机与演化时间线,以及通往各专篇的导读地图,附 Geolocation 与 Notification 两个设备能力示例。
- 051中级fetch 与 AbortControllerfetch 请求全解:流式读取、超时取消与错误语义。
- 052进阶网络请求 API深入解析 WHATWG Fetch 标准、AbortController 取消语义、Web Streams API、Service Worker 缓存策略、GraphQL 客户端实现等高级主题,涵盖 MIT 6.S081 / Stanford CS107 级别的工程实践
- 053入门Web Streams 数据流从 fetch 响应体到自定义管道:ReadableStream/WritableStream/TransformStream 三种流、背压与队列策略、管道链与 NDJSON/SSE 流式解析,附下载进度条与流类型关系图。
- 054中级Web 存储 API浏览器端存储机制的形式语义、安全模型、工程实践与生产级应用
- 055进阶IndexedDB 浏览器数据库浏览器端事务型 NoSQL 数据库的形式语义、事务模型、索引机制与生产级工程实践
- 056进阶错误边界与全局错误捕获JavaScript错误边界与全局错误捕获:ErrorBoundary、window.onerror、unhandledrejection。
- 057中级防抖与节流搜索框每次按键都发请求、滚动条拖动页面卡顿:手写防抖与节流,理解 leading/trailing、取消与竞态处理。
- 058进阶调试与性能优化页面卡 200ms 怎么查:Performance 面板定位长任务、火焰图读法、内存快照对比找泄漏,以及一组性能坑。
- 059中级前端性能指标与 Core Web Vitals用 LCP、INP、CLS 三个核心指标学会量化"页面快不快",并给出浏览器端采集与上报的完整示例。
- 060入门Node.js 安装:把 JS 跑在浏览器之外从"为什么需要它"到"安装到底装了什么":Node.js 的心智模型、版本发布节奏、三大系统安装要点与验证背后的原理。