资料筛选与纠错
把相关知识和复习方法放在一起,随时回看。
采用与去重结果
| 方向 | 处理结果 | 补充题号 |
|---|---|---|
| JS 基础与函数 | 补齐隐式转换、精度、遍历、稀疏数组、函数组合等边界 | 1~10 |
| HTML/CSS | 补齐层叠、可见性、脚本顺序、尺寸单位、图形方案 | 11~15 |
| 网络与安全 | 补齐协议演进、状态码、Worker、存储、CSP、跨窗口通信 | 16~25 |
| 工程化 | 补齐 Loader/Plugin、HMR、文件指纹、Source Map、构建诊断 | 26~30 |
| 性能与监控 | 补齐任务调度、虚拟列表、埋点可靠性、图片加载策略 | 31~34 |
| 业务场景 | 补齐截图、超时重试、主题首屏、跨域单点登录 | 35~38 |
| 手写 | 增加有边界说明和测试的函数工具、数组方法 | 39~40 |
| 原题已覆盖 | 闭包、事件循环、Promise、响应式、Diff、Hooks、基础缓存、XSS/CSRF、LRU 等继续使用现有题,不按 PDF 数量重复堆题 | 见原四份文档 |
原资料中需要修正的说法
| 原资料说法或缺少的条件 | 正确理解 |
|---|---|
C 第 1 页把 document.documentElement 传给 drawImage 截取网页 |
DOM 元素不是合法的 CanvasImageSource;需要截图渲染库、浏览器截图或用户授权的屏幕捕获。见补充 35 |
C 第 2~3 页把 9007199254740993 的问题归因于超过 Number.MAX_VALUE |
超过的是 MAX_SAFE_INTEGER;MAX_VALUE 表示有限数的量级上限。先保存为字符串或 BigInt,精度丢失后无法恢复。见补充 3 |
| C 第 149~150 页把 sendBeacon 说成离线、跨域也可靠送达 | 返回 true 仅表示进入浏览器队列,不能证明服务器收到;仍有请求、跨域与配额限制。见补充 33 |
| A 第 74 页用 JSON.stringify 直接判断通用对象相等 | 属性顺序、被忽略的值、循环引用、类型信息都会影响结果;仅适用于受约束的数据模型,不能作通用深比较 |
| B 第 17 页把 CommonJS 描述成永远复制值 | 导出对象可共享引用,模块缓存也影响行为;ESM 是活绑定。现有模块题保留这些区别 |
| A 第 1 页把搜索引擎概括为完全不执行 JavaScript | Google 会渲染 JavaScript,其他爬虫能力不同;SSR 仍可改善首屏和抓取稳定性,不能用“所有爬虫不执行 JS”作为论据 |
| D 第 3 页给原递归 Fibonacci 套一次 memoize,就认为每个递归分支都缓存 | 原函数内部仍调用原函数时,只缓存最外层调用;递归必须经过缓存入口。见补充 8 |
| C 第 183 页笼统认为 v-for 优先级更高 | Vue2 同节点 v-for 优先;Vue3 同节点 v-if 优先,不能跨版本套用;实际都应避免同节点混用 |
这份资料中未把 jQuery、旧版 IE 兼容、HappyPack、DllPlugin 等历史方案作为当前默认建议。遇到存量项目时,应先说明版本和实际瓶颈再选择方案。