专题深化
把相关知识和复习方法放在一起,随时回看。
这份文档配合原五份题库,新增 36 道目前较薄弱的专题题。所有题目按“回答要点 → 原理拆解 → 示例与推演 → 易错点 → 参考回答”组织,原有 213 道题也采用同样的详细阅读层次。参考回答用于口述,原理和示例用于理解,不需要靠外部链接才能补齐基本答案。
参考入口:史上最全八股文、新版面试题分享目录。分享密码不写入项目。资料用于识别考点与讲解结构,答案独立整理,并以适用版本的官方文档校对;不把第三方答案未经验证直接转存。
阅读入口:资料合并与纠错说明、Node.js 第一题、TypeScript 深化、新增手写题。也可从网站原有分类进入。
按知识点 37 项内容
HTML / CSS5
QDOM、BOM、Node、Element 与语义标签是什么关系?Q输入框限制长度、中文输入法与表单提交怎么处理?Q图片上传前怎样预览?Object URL、Data URL 如何释放和控制?Qtransform、transition、animation 的区别和动画性能如何解释?Q单行、多行省略为什么有时不生效?Flex 子项如何防撑宽?
浏览器与网络3
Q哪些事件不冒泡?mouseenter、mouseover 与事件委托有什么区别?QMessageChannel、BroadcastChannel、storage 与 postMessage 如何选择?QSRI、iframe sandbox 与防点击劫持分别解决什么?
TypeScript6
Qtsconfig 的 target、module、lib 与 strict 分别影响什么?Qis 类型守卫与断言有什么区别?怎样安全处理 unknown?Qkeyof、映射类型、条件类型与 infer 怎么配合?Q函数重载什么时候比联合参数合适?实现签名是什么?Qdeclare、.d.ts 与 @types 是什么?声明能创造运行时对象吗?Qnamespace、ES Module、enum 与字面量联合怎么选择?
工程化14
QNode.js 事件循环和浏览器有什么不同?nextTick、Promise、setImmediate 如何排序?QNode.js 是单线程吗?CPU 密集任务与 I/O 密集任务怎样处理?QExpress 与 Koa 的中间件如何执行?洋葱模型有什么要求?QStream 与背压是什么?为什么不能把大文件全部读进内存?QBuffer、ArrayBuffer、Blob 和 Base64 怎么区分?中文分块怎么解码?QNode 文件操作怎样避免阻塞、路径穿越和竞态?QNode 服务怎样优雅退出?PM2 重启能解决什么,不能解决什么?QNode 的 require 与 import 如何解析模块?为什么 ESM 常要求扩展名?QEventEmitter 的监听是同步还是异步?如何避免泄漏?QNode 服务 CPU 高、内存涨、接口慢怎么定位?Qdependencies、devDependencies、peerDependencies 和锁文件分别管什么?Q前端 CI/CD 应有哪些阶段?如何设计可回滚发布?QWebpack 的 module、chunk、bundle 分别是什么?QBFF 与开发代理有什么区别?SSR 项目怎样聚合接口?
项目与场景3
手写题5
Q手写支持异步的 Koa 洋葱模型 compose,并防止多次 next。Q手写 Fisher–Yates 洗牌,为什么 sort(() => Math.random()-0.5) 不可靠?Q手写稳定的归并排序,并分析复杂度与重复项顺序。Q删除字符串中出现次数最少的字符,怎样保持原顺序?Q用 Promise 实现可取消的红绿灯循环,怎样避免递归和定时器泄漏?