进阶补充
把相关知识和复习方法放在一起,随时回看。
详细阅读顺序:回答要点 → 原理拆解 → 示例与推演 → 易错点 → 参考回答;已有追问继续附完整解答。结合两份飞书资料整理的来源、合并位置和纠错见专题深化与资料整理说明。
从 files/ 中分享的面试资料筛选题目,按现有题库去重后补充 40 道。每题提供回答要点与可以直接用于面试的完整参考回答;涉及版本或实现边界的地方单独说明。本文的“补充 1~40”对应网站的稳定题号 supplement-1~supplement-40。
资料用于发现遗漏的考点,答案重新组织并校对。目录写“2025”不等于内容全部更新至 2025;部分 PDF 页眉实际为 2019 年。页码均为 PDF 文件中的页面序号,方便对照本地原件。
| 标记 | 项目内原件 | 本文采用的主题与页码 |
|---|---|---|
| A | files/2025前端面试题合集/1、第一部分:基础篇(293题).pdf |
Canvas/SVG(10)、CSS(19、22~34)、作用域与继承(39~40)、数组回调(53)、脚本加载(55)、对象遍历(60)、大量 DOM(62) |
| B | files/2025前端面试题合集/5、第五部分:高频考点(37题)..pdf |
类型转换(1~7)、继承(12)、安全策略(51~53)、构建(62~68)、监控与 Source Map(99~100)、TCP/HTTP/TLS(100~115) |
| C | files/2025年前端最新场景题面试攻略.pdf |
截图与大整数(1~3)、主题(13)、图片(17)、DNS/CDN(20~21)、构建缓存(89~90)、HTTP 与通信(94~98)、任务拆分(112~113)、图片优化(118~132)、SSO(135~136)、HMR 与重试(138~143)、监控(149~153)、构建与存储(161~173) |
| D | files/JS2025面试专题/19. “面试常问函数题”合集(组合、记忆化).pdf |
函数组合与记忆化(1~4) |
其他资料主要用于交叉核对和去重。新增题分布在 JavaScript、HTML/CSS、浏览器与网络、工程化、性能与排障、项目与场景、手写题中;Vue2、Vue3、React 和 AI 的基础题继续阅读原有专题。
网站阅读入口:筛选与纠错说明、从补充第 1 题开始、新增手写题。也可以直接点击左侧分类,找到对应的补充章节。
按知识点 41 项内容
JavaScript10
Q执行上下文、词法作用域和调用栈是什么关系?Q隐式类型转换和 ==、=== 的常见陷阱怎么解释?Q大整数为什么丢失精度?MAX_SAFE_INTEGER、MAX_VALUE 与 BigInt 怎么选?Qfor…in、Object.keys、Reflect.ownKeys、in 和自有属性判断有什么区别?Qmap、forEach、reduce 遇到稀疏数组和回调参数会怎样?QObject.create、寄生组合继承和 class extends 分别做了什么?Q高阶函数、柯里化、compose、pipe 与纯函数有什么联系?Q记忆化缓存怎么设计?为什么给递归函数包一层不一定加速递归?QsetTimeout、setInterval 的延迟为什么不准确?如何避免任务堆积?QMap 与 WeakMap 怎么选?弱引用是否代表一定不会泄漏?
HTML / CSS5
QCSS 层叠和选择器优先级怎么比较?:is、:where 有什么特殊之处?Qdisplay:none、visibility:hidden、opacity:0 有哪些实际差别?Q普通 script、async、defer 和 type=module 的加载执行顺序是什么?Qpx、em、rem、vw、vh、dvh 与设备像素比怎么理解?QCanvas 与 SVG 如何选择?
浏览器与网络10
QGET、POST、PUT、PATCH、DELETE 的安全性与幂等性如何区分?Q常见 HTTP 状态码和重定向有哪些容易混淆的地方?QHTTP/1.1、HTTP/2、HTTP/3 的队头阻塞分别发生在哪里?QHTTPS 的 TLS 握手解决什么问题?证书和会话密钥是什么关系?QTCP 和 UDP 的区别是什么?三次握手、四次挥手为什么不能只背次数?QDNS 与 CDN 在一次资源访问中如何协作?更新不生效怎么排查?QWeb Worker、SharedWorker 与 Service Worker 有什么区别?QIndexedDB、CacheStorage 与 localStorage 如何选择?浏览器容量是多少?QCSP 怎么配置才能产生实际价值?nonce、hash 与 Report-Only 分别是什么?QpostMessage 跨窗口通信如何防止消息伪造和数据泄露?
工程化5
QWebpack Loader、Plugin 与 Babel 的处理阶段怎么区分?QHMR 为什么能保留状态?什么时候仍然需要整页刷新?Qhash、chunkhash、contenthash 与长期缓存有什么关系?QSource Map 如何帮助线上排障?怎么兼顾定位与源码暴露?Q构建慢、包体大和页面运行慢,应该分别怎么优化?
性能与排障4
Q大量计算或 DOM 更新怎样拆分?rAF、requestIdleCallback 能解决什么?Q虚拟列表的可视范围如何计算?变高内容和滚动跳动怎么处理?Q如何设计前端监控 SDK?sendBeacon 能保证日志不丢吗?Q图片懒加载、预加载、预连接和 fetchpriority 怎么配合?
项目与场景4
Q前端怎样实现网页截图?为什么不能直接 drawImage(documentElement)?Q接口超时与自动重试怎么设计,才不会重复下单或产生僵尸请求?Q深色主题如何避免首屏闪烁?SSR 项目如何保存选择?Q不同域名的系统怎样实现 SSO?为什么不能直接共享 localStorage?