面试真题讲解
逐题讲清解题思路、关键实现与常见追问。
如何手写 JavaScript 深拷贝,正确处理循环引用和共享引用?
先定义有限的拷贝契约,再用源对象到副本的 WeakMap 实现深拷贝,使循环引用、共享引用、Map、Set 和受支持的内置对象保持一致,并判断何时应直接使用 structuredClone。
如何手写 JavaScript EventEmitter,正确处理 on、off、once 和 emit?
从事件契约出发手写 JavaScript EventEmitter,处理重复注册、派发中增删监听器、once 重入和异常传播,并用边界用例验证语义。
如何手写 Promise.all,并正确处理顺序与失败?
从可迭代输入的契约出发,实现支持普通值、thenable、空输入、顺序保持和快速失败的 Promise.all,并用边界用例验证语义。