# 1. JavaScript 基础

# 1.1 执行上下文 / 作用域链 / 闭包

# 1.2 this/call/apply/bind

# 1.3 原型 / 继承

# 1.4 Promise

async function async1() {
    console.log('async1 start');
    await async2();
    console.log('async1 end');
}

// 相当于
async function async1() {
    console.log('async1 start');
    Promise.resolve(async2()).then(() => {
      console.log('async1 end');
  })
}

# 1.5 深浅拷贝

# 1.6 事件机制 / Event Loop

这个知识点真的是重在理解,一定要理解彻底

for (const macroTask of macroTaskQueue) {
  handleMacroTask();
  
  for (const microTask of microTaskQueue) {
    handleMicroTask(microTask);
  }
}

# 1.7 函数式编程

# 1.8 Service Worker / PWA

# 1.9 Web Worker

# 1.10 常用方法

太多了… 总的来说就是 API 一定要熟悉…

# 2. CSS 基础

# 3. 框架 (Vue 为主)

# 3.1 MVVM

# 3.2 生命周期

# 3.3 数据绑定

# 3.4 状态管理

# 3.5 组件通信

# 3.6 Virtual DOM

# 3.7 Diff

# 3.8 Vue 计算属性 VS 侦听属性

# 3.9 React Hooks

# 3.10 React Hoc/Vue mixin

# 3.11 Vue 和 React 有什么不同

从思想、生态、语法、数据、通信、diff 等角度自己总结一下吧。

# 4. 工程化

# 4.1 Webpack

# 4.2 Babel

# 4.3 模板引擎

# 4.4 前端发布

# 4.5 weex

# 4.6 前端监控

# 5. 性能优化

# 5.1 打包阶段

# 5.2 其它优化

欢迎关注公众号「前端试炼」,回复【面试】获取完整复习导图。公众号平时会分享一些实用或者有意思的东西,发现代码之美。专注深度和最佳实践,希望打造一个高质量的公众号。


# 6. TypeScript

# 7. 网络

# 7.1 HTTP

# 7.2 HTTPS/HTTP2

# 7.3 DNS

# 7.4 TCP

# 7.5 CDN

# 7.6 经典题

# 8. 设计模式

# 9. 数据结构 / 算法

# 10. 安全

# 11. Node

# 12. 项目 / 业务

思考题,自由发挥

# 13. 其它

# 14. 面试

# 15. 书单

推荐一些值得看的书,基本都是我看完或者有翻过几页觉得不错但是还没时间看的书。

# 15.1 JavaScript

  • JavaScript 高级程序设计(高程就不多说了,第四版有英文版)
  • JavaScript 设计模式
  • 你不知道的 JavaScript
  • JavaScript 语言精粹
  • 高性能 JavaScript
  • Learning TypeScript 中文版
  • 深入理解 ES6
  • ES6 标准入门
  • 深入理解 JavaScript 特性

# 15.2 CSS

  • CSS 权威指南(建议看英文版)
  • 精通 CSS 高级 Web 标准解决方案
  • CSS 世界(张鑫旭老师的大作,但是建议需要有一定 CSS 实践后再看)

# 15.3 Node

  • Node.js 实战
  • 了不起的 Node.js

# 15.4 计算机基础

  • 大话数据结构
  • 图解 HTTP
  • 计算机 / 程序是怎样跑起来的
  • 学习 JavaScript 数据结构与算法

# 15.5 工程化 / 浏览器 / 软技能

  • 前端工程化体系设计与实践
  • webpack 实战:入门、进阶与优化(了解一下 webpack 的所有会涉及到的知识点)
  • WebKit 技术内幕(讲浏览器的,挺好的)
  • 重构:改善既有代码的涉及
  • 码农翻身
  • 程序员思维修炼
  • 编码:隐匿在计算机软硬件背后的语言
  • 写给大家看的设计书
  • 技术之瞳:阿里巴巴技术笔试心得