前端工程师自检清单
前端开发是一个很特殊的领域。它的历史不算长,但知识面极广,技术迭代也快,很多内容都需要在实践中一点点补齐。
随着入门门槛降低,很多前端工程师都能很快上手做项目,但'会用'往往只是起点。真正拉开差距的,不是你记住了多少 API,而是你有没有把零散知识串成体系,能不能清楚地知道自己还缺什么、该补什么。
我一直习惯把工作和学习中接触到的内容归档成自己的知识体系。它既是学习地图,也是自检清单。下面这份清单,你可以拿来对照自己当前的掌握程度;如果你发现有遗漏的点,也可以继续补进自己的体系里。
一、JavaScript 基础
前端工程师吃饭的家伙,深度和广度都不能差。
变量和类型
- JavaScript 规定了几种语言类型
- JavaScript 对象的底层数据结构是什么
- Symbol 类型在实际开发中的应用,能否手动实现一个简单的 Symbol
- JavaScript 中的变量在内存中的具体存储形式
- 基本类型对应的内置对象,以及它们之间的装箱和拆箱操作
- 理解值类型和引用类型
- null 和 undefined 的区别
- 至少能说出三种判断 JavaScript 数据类型的方式,以及它们的优缺点,如何准确判断数组类型
- 可能发生隐式类型转换的场景以及转换原则,应如何避免或巧妙应用
- 出现小数精度丢失的原因,JavaScript 可以存储的最大数字、最大安全数字,处理大数字的方法,以及避免精度丢失的思路
原型和原型链
- 理解原型设计模式以及 JavaScript 中的原型规则
instanceof的底层实现原理,手动实现一个instanceof- 实现继承的几种方式以及它们的优缺点
- 至少说出一种开源项目(如 Node)中应用原型继承的案例
- 可以描述
new一个对象的详细过程,手动实现一个new操作符 - 理解 ES6
class构造以及继承的底层实现原理
作用域和闭包
- 理解词法作用域和动态作用域
- 理解 JavaScript 的作用域和作用域链
- 理解 JavaScript 的执行上下文栈,并能利用堆栈信息快速定位问题
this的原理以及几种不同使用场景下的取值- 闭包的实现原理和作用,能列举几个开发中闭包的实际应用
- 理解堆栈溢出和内存泄漏的原理,知道如何防止
- 如何处理循环中的异步操作
- 理解模块化解决的实际问题,可列举几种模块化方案并理解其中原理
执行机制
- 为什么
try里放了return,finally还是会执行,理解其内部机制 - JavaScript 如何实现异步编程,能详细描述
Event Loop机制 - 宏任务和微任务分别有哪些
- 能快速分析复杂的异步嵌套逻辑,并掌握分析方法
- 使用
Promise实现串行 - Node 与浏览器
Event Loop的差异 - 如何在保证页面运行流畅的情况下处理海量数据
语法和 API
- 理解
ECMAScript和JavaScript的关系 - 熟练运用 ES5、ES6 提供的语法规范
- 熟练掌握 JavaScript 提供的全局对象、全局函数和全局属性
- 熟练应用
map、reduce、filter等高阶函数解决问题 - 需要注意的点,能用 实现


