手写练习场
手写题是前端面试的"实操关"。面试官通过让你现场实现 Promise、防抖节流、深拷贝、发布订阅等,考察对基础原理的理解与代码功底。这类题没有捷径, 只能靠反复练习形成肌肉记忆,并在理解"为什么这么写"的基础上应对追问。
题目清单
- call / apply / bind - 显式绑定 this 的三种方式及其区别与实现。
- curry 柯里化 - 函数柯里化的实现思路与常见应用场景。
- debounce / throttle - 防抖与节流的核心思想、边界处理与取消功能。
- deep clone 深拷贝 - 处理循环引用、特殊对象(Date/RegExp/Map)的深拷贝实现。
- EventEmitter - 发布订阅模式,on/emit/off/once 的完整实现。
- LRU 缓存 - 最近最少使用缓存,结合 Map 与双向链表的经典实现。
- new / instanceof - 手写 new 与 instanceof,理解原型链与对象创建过程。
- Promise - 从零实现 Promise/A+,链式调用、错误处理与静态方法。
学习路径建议
- 从最短开始:先吃透
call/apply/bind、new/instanceof,它们是理解 this 与原型链的钥匙。 - 异步核心:手写 Promise/A+ 是重中之重,务必能独立写出链式调用与错误穿透。
- 高频场 景:防抖节流、深拷贝、发布订阅是出现频率最高的三道题,做到能默写并能解释边界。
- 追问准备:每道题想清楚"如果面试官追问性能、边界、与原生实现的差异怎么回答",而不只是写出能跑的版本。