资料筛选与纠错

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

采用与去重结果

方向 处理结果 补充题号
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 等历史方案作为当前默认建议。遇到存量项目时,应先说明版本和实际瓶颈再选择方案。

校对参考:MDN drawImage、MDN sendBeacon、Google JavaScript SEO。