前端面试备战库
00 · 备战指南
子分类01 · JavaScript 与 TypeScript
子分类02 · 浏览器 · 网络 · 工程化
子分类03 · HTML · CSS · 可访问性
子分类04 · React 生态
子分类05 · 手写题
子分类06 · 前端系统设计
子分类07 · 算法
子分类08 · 简历与项目深挖
子分类09 · 行为面试
子分类10 · 测试与质量保障
子分类11 · UI 组件机考
子分类12 · Vue 3 生态
子分类Promise 的状态机、链式调用与错误处理(含 A+ 规范)
interface 和 type 有什么区别?该用哪个
this 的指向规则,call / apply / bind 的区别
事件循环是怎么运作的?宏任务、微任务与浏览器/Node 的区别
原型、原型链与继承的几种方式
闭包是什么?原理、应用场景与内存泄漏
HTTP 协议是怎么演进的(1.0 / 1.1 / 2 / 3)?
HTTP 强缓存与协商缓存有什么区别?
SPA 为什么会白屏?首屏怎么优化?
从输入 URL 到页面渲染发生了什么?
前端性能指标(FCP/LCP/TTI/TBT/CLS/INP)都测什么?阈值与优化手段?
浏览器渲染流程:从 DOM 到 Composite 经历了哪些阶段?
同源策略是什么?跨域有哪些解决方案(CORS / JSONP / 代理)?
重排(reflow)与重绘(repaint)有何区别,如何优化?
BFC 是什么?触发条件与解决的问题
Flex 弹性布局:主轴/交叉轴、flex 简写与常见居中
水平垂直居中有哪些方案?
CSS 盒模型:content-box 与 border-box 有什么区别?
Fiber 架构解决了什么?可中断渲染与双缓冲是怎么实现的?
React 有哪些性能优化手段?
列表渲染的 key 有什么用?为什么不建议用 index 当 key?
useEffect 的依赖、清理与执行时机,跟 useLayoutEffect 有什么区别?
useMemo、useCallback、React.memo 分别解决什么问题,怎么配合?
useState 是怎么工作的?批处理与函数式更新讲清楚了吗?
受控组件与非受控组件有什么区别?怎么选?
React 的合成事件(SyntheticEvent)是什么?和原生事件有何不同?
虚拟 DOM 是什么?React 的 Diff 算法怎么做到 O(n)?
手写 Promise.all / race / allSettled / any
手写一个符合 Promises/A+ 规范的 Promise?
手写深拷贝 deepClone(处理循环引用与特殊类型)
手写 debounce 防抖与 throttle 节流(工程级完整实现)
设计一个自动补全 Autocomplete / Typeahead 组件
设计一个 Feed 流(朋友圈 / Twitter 时间线)
数组/字符串:双指针与滑动窗口
哈希表:两数之和、Top K 高频问题
空档期应对话术(2022.08–2025.06 家族外贸期)
简历技能自查清单(声称会的都要扛得住追问)
这个项目为什么用微前端?对比过哪些方案?怎么做隔离和通信?
这个项目里你怎么用 React + TanStack 管理服务端状态?为什么不用 Redux?
性能告警分析大屏的大数据量怎么渲染不卡?做了哪些优化?
FeetUI 为什么做无头分层架构(core/signals/Lit/hooks)?不直接做 React 或 Lit 组件库吗?
怎么用 Agent 驱动组件库开发?Vibe Coding 流程和 Skills 规范是什么?
同一套 core 怎么跨栈复用到 React / React Native?为什么不让 React 直接消费 Lit 组件?
STAR 故事库(一个故事打多个问题)
你遇到的最有挑战的技术难题(怎么定位、怎么解决)
为什么离职 / 为什么想来我们这(含短期项目、空档期衔接)
自我介绍(技术向,2 分钟版 + 30 秒版)
机考:实现一个可访问的 Tabs 标签页组件(受控/非受控 + WAI-ARIA + 键盘导航 + 懒加载)
Autocomplete 自动补全组件实现
ref、reactive、toRef、toRefs 有什么区别?Vue 3 如何跟踪响应式依赖?
computed 如何缓存?和方法、watch 有什么区别?
watch 和 watchEffect 怎么选?深度监听、执行时机和请求竞态怎么处理?
Vue 3 生命周期如何执行?nextTick 等到的究竟是什么?
Vue 3 组件如何通信?props、emits 和 v-model 是什么关系?
Vue 3 如何更新视图?key、最长递增子序列和编译优化分别解决什么?
Pinia 如何组织状态?为什么解构 store 要用 storeToRefs?