Yihui’s Blog

JavaScript 完整学习路径

从零基础到进阶,系统掌握 JavaScript 核心知识体系

📋 学习路线图

基础语法 → 核心概念 → Web APIs → 异步编程 → 模块化 → 进阶应用 → 源码学习

🎯 第一阶段:JavaScript 基础 (入门必读)

1.1 核心语法基础

学习目标: 掌握 JavaScript 基础语法和数据类型

📚 推荐阅读顺序:

  1. JavaScript 进阶整合 - 核心概念总览
  2. == 与 === 的区别 - 理解类型比较
  3. IIFE 立即执行函数表达式 - 函数作用域

实践建议:


1.2 原型与原型链

学习目标: 理解 JavaScript 面向对象的核心机制

📚 必读文章:

  1. Property 原型链与原型 - 原型链完整解析
  2. 深入解析 call、apply、bind - this 绑定机制

实践任务:

  • 手写 call、apply、bind 实现
  • 理解继承的几种实现方式

🔥 第二阶段:ES6+ 新特性

2.1 现代 JavaScript 语法

学习目标: 掌握 ES6 及以上版本的新特性

📚 学习路径:

  1. ES 12 新特性 - 最新语法糖
  2. 前端模块:CJS, AMD, UMD, ESM, System 和 IIFE - 模块化演进

重点掌握:

  • 解构赋值
  • 箭头函数
  • Promise
  • async/await
  • 模板字符串
  • 类 (Class)

⚡ 第三阶段:异步编程

3.1 Promise 深入

学习目标: 完全掌握 JavaScript 异步编程

📚 核心文章:

  1. PromiseA+ 规范集合 ⭐ - 必读!深入理解 Promise
  2. JavaScript 错误处理指南 - 异步错误处理

实践任务:

  • 手写 Promise 实现
  • 实现 Promise.all、Promise.race
  • 理解 async/await 原理

3.2 事件循环机制

学习目标: 理解 JavaScript 运行时机制

📚 必读系列:

  1. 事件循环是如何影响页面渲染的? ⭐
  2. 配合 Node.js 事件循环系列加深理解(见 Node 学习路径)

知识要点:

  • 宏任务 vs 微任务
  • 事件循环执行顺序
  • 与页面渲染的关系

🌐 第四阶段:Web APIs

4.1 浏览器 API

学习目标: 掌握常用浏览器 API

📚 学习顺序:

存储 APIs:

  1. LocalStorage、sessionStorage 封装
  2. 在现代应用中使用 localStorage 的全面指南
  3. 基于 StorageEvent 的跨 tab 事件传输方案

网络 APIs:

  1. axios、XHR、XML、AJAX 和 Fetch 分不清怎么办? ⭐
  2. 来认识一下实用的、好用的:URL API

观察者 APIs:

  1. 了解 MutationObserver 的使用
  2. 如何使用 Performance API 来衡量应用性能?
  3. WebPerf Snippets

4.2 Web Workers

学习目标: 掌握多线程编程

📚 完整学习路径:

  1. 怎么总有人混淆 Service Worker 和 Web Worker? - 概念区分
  2. Web Worker 常见使用问题和解决方案 ⭐
  3. Web Worker 与主线程通信场景下对 postMessage 的简洁封装 - 实战封装

实践项目:

  • 实现一个使用 Web Worker 的图片处理应用
  • 封装通用的 Worker 通信库

4.3 WebAudio

学习目标: 音频处理进阶

📚 专题学习:

  1. Web Audio 滤波器 Filter
  2. Tone.js 框架食用指南

🎨 第五阶段:实战应用

5.1 图像处理

学习目标: Canvas 与图像操作

📚 实战教程:

  1. 前端通过 canvas 实现图片裁剪
  2. 浏览器中如何通过 webgl 获取渲染器信息

5.2 前端安全与认证

学习目标: 安全最佳实践

📚 安全专题:

  1. 前端 SSO 单点登入方案
  2. 配合 CORS 跨域 理解跨域问题

5.3 常用工具方法

学习目标: 提升编码效率

📚 技巧集合:

  1. JavaScript 优雅写法及骚操作 ⭐
  2. 玩转一行代码 KO 问题
  3. 正则表达式卷起来!
  4. 如何跳出 forEach 循环
  5. JavaScript 数组去重

🔧 第六阶段:工具库与生态

6.1 富文本编辑器

推荐库: Quill.js

📚 完整指南:

  1. Quill 富文本编辑器使用
  2. quill.js 的文本库 —— delta 的使用

6.2 CLI 工具开发

学习目标: 命令行工具开发

📚 工具库系列:

  1. inquirer 使用指南 - 交互式命令行
  2. enquirer 使用指南 - 更现代的选择
  3. yargs 使用指南 - 参数解析
  4. ora 优雅的终端旋转器 - Loading 效果

实践项目: 开发一个完整的 CLI 工具


6.3 代码质量工具

学习目标: 规范代码风格

📚 工具链:

  1. ESLint - 代码检查
  2. Prettier - 代码格式化
  3. husky - Git Hooks

6.4 自动化测试与爬虫

学习目标: 自动化工具

📚 Puppeteer 系列:

  1. Puppeteer 使用指南

6.5 代码分析与混淆

学习目标: AST 与代码处理

📚 进阶工具:

  1. Esprima 指南 - JavaScript 解析器
  2. JavaScript obfuscator - 代码混淆

6.6 实用小工具

📚 推荐库:

  1. validate-npm-package-name
  2. Git 相关工具

🏗️ 第七阶段:构建工具生态

7.1 模块化演进

学习目标: 理解前端模块化历史

📚 核心文章:

  1. 前端模块:CJS, AMD, UMD, ESM, System 和 IIFE ⭐
  2. 构建工具应该包含哪些能力?

推荐继续学习:

  • Webpack 学习路径
  • Vite 学习路径

🚀 第八阶段:进阶主题

8.1 性能优化

学习目标: 性能优化最佳实践

📚 性能系列:

  1. WebPerf Snippets
  2. 如何使用 Performance API
  3. 事件循环与页面渲染

8.2 内存管理

学习目标: 理解垃圾回收机制

📚 核心知识:

  1. JS 垃圾回收机制 ⭐

8.3 同构 JavaScript

学习目标: 前后端同构

📚 概念理解:

  1. 为什么每个人都在谈论同构 JavaScript
  2. 配合 SSR 专题深入学习

8.4 并发编程

学习目标: 共享内存与原子操作

📚 进阶 API:

  1. Atomics API - SharedArrayBuffer 相关

8.5 文档与类型

学习目标: 代码文档化

📚 工具使用:

  1. JSDoc 初探

🎓 第九阶段:面试准备

9.1 高频面试题

学习目标: 应对技术面试

📚 必刷题库:

  1. JavaScript 高频手撕 ⭐⭐⭐
  2. JavaScript 输出判断 ⭐⭐
  3. JavaScript 数组去重

9.2 综合面试题

📚 题库系列:

  1. JavaScript 面试题汇总(上)
  2. JavaScript 面试题汇总(下)
  3. 小滴课堂 JS 题目汇总

9.3 进阶整合

📚 总结性文章:

  1. JavaScript 进阶整合 - 全面复习

🔗 相关学习路径

完成 JavaScript 基础后,推荐继续学习:

  1. Node.js 完整学习路径 - 后端 JavaScript
  2. TypeScript 学习路径 - 类型安全
  3. Vue 全栈学习路线 - Vue 框架
  4. React 进阶学习路线 - React 框架

📊 学习时长估算

阶段内容建议时长难度
第一阶段JavaScript 基础2-3 周⭐
第二阶段ES6+ 新特性1-2 周⭐⭐
第三阶段异步编程2-3 周⭐⭐⭐
第四阶段Web APIs3-4 周⭐⭐
第五阶段实战应用3-4 周⭐⭐⭐
第六阶段工具库生态2-3 周⭐⭐
第七阶段构建工具2-3 周⭐⭐⭐
第八阶段进阶主题4-6 周⭐⭐⭐⭐
第九阶段面试准备2-4 周⭐⭐⭐

总计: 约 3-6 个月(根据个人基础和投入时间)


✅ 学习检查清单

基础阶段

  • 掌握基本语法和数据类型
  • 理解原型链和继承
  • 熟练使用 this、call、apply、bind
  • 完成基础输出判断题

进阶阶段

  • 手写 Promise 实现
  • 理解事件循环机制
  • 掌握模块化方案
  • 熟练使用 ES6+ 特性

实战阶段

  • 完成 Web Worker 实战项目
  • 封装常用工具函数库
  • 开发 CLI 工具
  • 实现图片处理应用

面试阶段

  • 完成高频手撕代码
  • 刷完所有面试题库
  • 能讲清楚核心概念
  • 准备项目经验总结

💡 学习建议

1. 理论与实践结合

  • 每学完一个知识点,立即动手实践
  • 尝试在实际项目中应用所学知识
  • 阅读优秀开源项目代码

2. 循序渐进

  • 不要跳过基础阶段
  • 遇到困难不要灰心,多查资料多实践
  • 建立完整的知识体系

3. 注重源码学习

  • 理解原理比记住 API 更重要
  • 尝试手写核心功能实现
  • 阅读经典库的源码(lodash、axios 等)

4. 保持学习热情

  • 关注前端技术发展动态
  • 参与开源项目贡献
  • 写技术博客总结所学

5. 面试准备策略

  • 提前 2-3 个月开始准备
  • 每天刷题 2-3 小时
  • 模拟面试场景练习
  • 准备项目亮点讲解

🌟 推荐学习资源

在线资源

  • MDN Web Docs - 权威文档
  • JavaScript.info - 现代 JavaScript 教程
  • ES6 入门教程(阮一峰)

必读书籍

  • 《JavaScript 高级程序设计》(红宝书)
  • 《你不知道的 JavaScript》
  • 《JavaScript 语言精粹》
  • 《深入理解 ES6》

实战平台

  • LeetCode - 算法练习
  • 牛客网 - 前端面试
  • CodePen - 代码实验

📞 反馈与讨论

如果在学习过程中遇到问题,欢迎:

  • 查看相关文章的评论区
  • 在 GitHub Issues 提问
  • 加入技术交流群讨论

坚持学习,持续进步 🚀
最后更新: 2026-01-26

维护与整理 · Yihui在 GitHub 上编辑