基础知识
- [ ] HTML 基础
- HTML 书写规范
- 编写 semantic HTML
- HTML5 新特性(canvas、svg、audio、video…)
- 合理的 DOM 结构
- [ ] CSS 基础
- CSS 书写规范和类名命名规范
- CSS 优化方案和重绘、重排
- 网格(Grid)和弹性盒子(Flexbox)
- 媒体查询(Media Query)和响应式网站
- CSS3 新样式
- [ ] JS 基础
- 数据类型和 typeof null
- 深浅拷贝
- DOM 和 BOM
- 事件(事件冒泡、事件委托、事件对象)
- 原型(原型链、instanceof、继承)
- JS 中的类
- new 的过程
- this 指向
- call/apply/bind
- 执行环境
- 闭包
- 节流、防抖
- 模块化(ES6 module、AMD、CMD)
- 并发模型
- 事件循环
- ES6+ 新特性
- [ ] Node JS
- 事件机制
- [ ] 计算机基础
- 软件工程、测试原理
- Unicode
- 编译原理
- 操作系统
- 计算机网络
- 算法原理
基础进阶
1. JS 进阶
- [ ] 数据结构
- [ ] 算法
- 算法复杂度
- 二分搜索
- 排序(冒泡、快排…)
- underscore 源码
- [ ] 面向对象
- [ ] 函数式开发
- [ ] 设计模式
- [ ] 架构设计
- [ ] 重构之道
2. CSS 进阶
- [ ] CSS 预处理器(Sass、PostCss、Less、Stylus)
- [ ] CSS 框架(bootstrap、Materialize CSS、Bumla)
- [ ] CSS 架构规范(BEM、OOCSS、SMACSS、SUITCSS、Atomic)
边界知识
1. 网络相关
2. 浏览器
3. 性能优化
- [ ] SSR
- React(Next.js/After.js)
- Vue(Nuxt.js)
- Angular(Universal)
- [ ] 浏览器缓存策略
框架和库
- [ ] React
- Redux
- Mobx
- [ ] Vue
- vuex
- 父子通信(props/$refs、events/$parent/$root、event bus/vuex)
- 响应式原理
- [ ] Angular
- Rx.js
- ngrx
- [ ] 小程序
- [ ] 混合开发
- [ ] RN/Weex
- [ ] PWA
- service worker
开发工具
1. 基础工具
- [ ] Git 使用
- Gitkraken
- [ ] Linux 系统
2. 构建工具
- [ ] webpack/rollup/parcel
- 创造自己的函数库(npm)
- [ ] grunt/glup
- [ ] ESLint/JSlint/JShint/JSCS
- [ ] Babel
3. 测试工具
- [ ] 参考资料
- [ ] Jest
- [ ] Mocha
- [ ] Protractor
- [ ] Karma
- [ ] Enzyme
4. 静态检查工具
- [ ] TypeScript
- [ ] Flow