宝典补充

把相关知识和复习方法放在一起,随时回看。

这份文档对照 files/面试宝典/ 中新增的面试资料,与现有六份题库逐题去重后,补充 86 道此前缺少或只被顺带提到的题目。每题按“回答要点 → 原理拆解 → 示例与推演 → 易错点 → 参考回答”组织;本文的“宝典 1~86”对应网站稳定题号 baodian-1~baodian-86。

资料只用于发现考点,答案独立整理,并按官方文档与实际运行行为校对。原资料中过时或有误的说法集中列在资料整理与纠错说明,相关题目内也会说明适用版本。

阅读入口:JavaScript 第一题、JavaScript 语言深化、浏览器与安全、React 进阶、工程化与 Node、跨端与业务场景、手写与算法。也可以从左侧知识分类进入。

JavaScript21

QCommonJS、AMD、CMD、UMD 与 ES Module 是怎样演进的?今天还要关心哪些差异?Q迭代器协议和 Generator 是什么?怎样让普通对象支持 for...of?QV8 怎样执行和回收 JavaScript?JIT、隐藏类、新生代与老生代分别是什么?Qtry...catch 能捕获哪些异步错误?forEach 里 await 为什么不按顺序等待?Q怎样排查“到底是谁改了这个对象”?▤JavaScript 语言深化Qnew 做了什么?instanceof 为什么有时会误判?Q属性描述符、访问器,以及 freeze、seal、preventExtensions 有什么区别?Q原型污染是怎么发生的?怎样防护?Qawait、queueMicrotask、Promise.then 和 setTimeout 的执行顺序怎么推?QPromise 的 then、catch、finally 怎样传递值和错误?Qasync 函数一定返回 Promise 吗?await 后面不是 Promise 会怎样?Qarguments、默认参数、剩余参数和箭头函数有什么差异?Q解构和展开做的是浅拷贝吗?structuredClone 能替代手写深拷贝吗?Q哪些数组方法会改原数组?类数组怎样转成真正的数组?QJavaScript 字符串为什么按码元计数?正则的 lastIndex 为什么会串结果?QSymbol 解决什么问题?常见内置 Symbol 有什么用?Q怎样做可靠的深比较?JSON.stringify 为什么不行?Q严格模式改变了哪些行为?QES Module 循环依赖时,为什么会读到未初始化的值?Q对象的键会怎样转换?属性顺序和 delete 有什么规则?

HTML / CSS6

浏览器与网络11

Vue37

React7

TypeScript3

工程化11

项目与场景12

手写题9

综合与复习1