详细描述浏览器 Event Loop 流程,宏任务(MacroTask)和微任务(MicroTask)执行顺序的区别?
闭包在什么场景下会导致内存泄漏?V8 垃圾回收机制是如何处理的?
JS 原型链继承的原理是什么?ES6 Class extends 的本质?
手写 Promise 核心逻辑 (then 链式调用, 状态变更)。
V8 垃圾回收机制:新生代 (Scavenge) vs 老生代 (Mark-Sweep)?
this 的指向规则有哪些?Arrow Function 的 this 有何不同?
实现深拷贝 (Deep Clone) 需要注意哪些边界情况 (循环引用, Date, RegExp)?
CommonJS (require) 和 ES Modules (import) 的核心区别?
React Fiber 解决了什么问题?时间切片 (Time Slicing) 是如何实现的?
为什么 setTimeout/setInterval 中取不到最新的 state?如何解决?
React Diff 算法的时间复杂度是多少?做了哪些优化假设?
React 合成事件 (SyntheticEvent) 的机制?React 17 为什么把事件委托从 document 改为 root?
useMemo 和 useCallback 的区别?真的能提升性能吗?
Redux 和 Zustand 的核心区别?为什么现在流行 Zustand/Jotai?
React 18 的并发模式 (Concurrent Mode) 是什么?useTransition 解决了什么问题?
Vue 3 为什么要用 Proxy 重写响应式系统?Obj.defineProperty 有什么缺陷?
Vue.nextTick 的原理是什么?为什么修改数据后 DOM 不会立即更新?
Vue 3 的 Diff 算法比 React 快在哪里?(Block Tree & Patch Flags)
Composition API 到底好在哪里?不仅仅是逻辑复用?
Keep-Alive 组件是如何实现缓存的?LRU 算法在其中的应用?
Vite 开发环境为什么这么快 (No-Bundle)?生产环境为什么要打包?
Tree Shaking 生效的条件是什么?SideEffects 对它的影响?
微前端 (Qiankun) 是如何实现 JS 沙箱 (Sandbox) 隔离的?
描述一个完善的前端 CI/CD 流程应该包含哪些步骤?
详细描述 TLS 1.2 握手过程。客户端如何验证证书合法性?
强缓存 (Strong Cache) 和协商缓存 (Negotiated Cache) 的字段及优先级?
XSS 和 CSRF 的区别?如何防御?
浏览器从 URL 输入到页面展示 (CRP) 经历了哪些步骤?
解释 LCP, FCP, CLS, FID (INP) 指标含义及优化方向。
Flexbox 和 Grid 的核心设计理念区别?什么场景该用哪个?
移动端 Retina 屏幕的 1px 边框变粗问题怎么解决?
什么是 BFC (块级格式化上下文)?它解决了什么痛点?
列举 3 种未知的宽高元素的垂直居中方案。
手写防抖 (Debounce) 和节流 (Throttle) 函数。
手写数组拍平 (flat) 方法,支持指定深度。
手写快速排序 (Quick Sort) 的核心逻辑。
将扁平的 List (id, parentId) 转为嵌套的 Tree 结构。
设计一个 LRU (最近最少使用) 缓存机制。
代码复用模式演进:HOC -> Render Props -> Hooks,各有什么优缺点?
Error Boundary 能捕获哪些错误?Hook 中报错能捕获吗?
React Portal 的应用场景?事件冒泡会遵循 DOM 结构还是 React 树?
Vue Router 导航守卫的执行顺序?(Global -> Route -> Component)
v-model 是什么语法糖?Vue 2 和 Vue 3 在组件上的 v-model 有何区别?
Vue Scoped CSS 原理?如何修改子组件样式 (样式穿透)?
Cookie, LocalStorage, SessionStorage, IndexedDB 的区别?
事件流的三个阶段?addEventListener 第三个参数的作用?
如何实现浏览器多标签页 (Cross-Tab) 通信?
TypeScript 中 any 和 unknown 的区别?
interface 和 type 的主要区别?什么时候用哪个?
解释 TS 泛型约束 `T extends U` 的作用,keyof 的作用?
手写实现 Partial<T> 和 Pick<T, K>。
Node.js Event Loop 和 浏览器 Event Loop 的区别?(Timer/Check/Poll 阶段)
Stream (流) 的四种类型?为什么处理大文件要用 Stream?
Node.js 是单线程的,如何利用多核 CPU?PM2 的原理?
单页应用 (SPA) SEO 差,有哪些解决方案?(SSR vs SSG vs Prerender)
前端监控系统需要监控哪些指标?如何上报?
JWT (JSON Web Token) 与 Session/Cookie 的优缺点对比?适合什么场景?
<!DOCTYPE html> 的作用是什么?混杂模式 (Quirks Mode) 是什么?
script 标签的 defer 和 async 属性的区别?
语义化标签的好处?
重排 (Reflow) 和 重绘 (Repaint) 的区别?如何避免?
Promise.all 只要有一个 reject 就全挂,怎么解决?allSettled 的作用?
WeakMap 的 key 为什么必须是对象?它真的是弱引用吗?
Fiber 是什么?它如何解决 Stack Reconciler 的卡顿问题?
为什么不推荐用 index 作为 key?diff 算法具体是怎么利用 key 的?
Hooks 的"闭包陷阱" (Capture Value) 是怎么产生的?如何解决?
CSS Grid 的 grid-template-areas 怎么用?相比 Flex 的优势?
移动端适配方案:rem 还有必要吗?为什么现在流行 vw?
CSS @layer 是什么?如何解决样式优先级覆盖问题?
HTTP/2 的多路复用解决了什么?HTTP/3 为什么要换成 UDP (QUIC)?
CDN (内容分发网络) 的回源策略?CNAME 是什么?
为什么要三次握手?两次不行吗?(防止已失效的连接请求传到服务端)
useLayoutEffect 和 useEffect 的执行时机有什么不同?什么场景必须用 useLayoutEffect?
useImperativeHandle 是做什么的?配合 forwardRef 怎么用?
什么时候应该用 useReducer 而不是 useState?
设计一个 useDebounce 或 useWindowSize Hook。
Suspense 的原理是什么?React 18 如何用它做 Data Fetching?
Portal 渲染到 Body 下,点击它能触发父组件的 onClick 吗?为什么?
React.StrictMode 为什么会导致 useEffect 执行两次?
React 18 的自动批处理 (Automatic Batching) 有什么改进?
什么是 Hydration Mismatch?常见原因?
RSC (Server Components) 和 SSR 的区别?
为什么 Vue 官方推荐 Pinia 取代 Vuex?
<script setup> 有什么优势?
Vue 自定义指令的生命周期?应用场景?
Provide/Inject 的响应式问题?如何使其响应式?
<component :is="..."> 的用法?
作用域插槽 (Scoped Slots) 解决了什么问题?
Vue 2 和 Vue 3 中 v-if 和 v-for 谁的优先级高?为什么不建议同级使用?
Nuxt.js 中 asyncData 和 fetch 的区别?
Generator 函数 (*) 的作用?yield 关键字?async/await 和它的关系?
Reflect 对象的作用?为什么 Proxy 配合 Reflect 使用更好?
Map 和 Object 的区别?Set 的应用场景?
Symbol 的主要作用?Global Symbol Registry?
装饰器 (Decorator) 是什么?TS 中如何使用?
什么是柯里化 (Currying)?有什么用?
Web Worker 解决了什么问题?有什么限制?
Service Worker 的生命周期?通过它如何实现离线应用?
V8 垃圾回收机制?新生代 (Scavenge) vs 老生代 (Mark-Sweep)?
Monorepo (单体仓库) 的优缺点?Nx / TurboRepo / Lerna 的作用?
前端 CI/CD 流程通常包含哪些步骤?
前端为什么需要 Docker?Nginx 在 Docker 中扮演什么角色?
Git Flow vs Trunk Based Development (主干开发)?
pnpm 为什么比 npm/yarn 快且省磁盘?什么是幽灵依赖 (Phantom Dependency)?
AST 的应用场景有哪些?Babel 插件是如何工作的?
Source Map 原理?生产环境 (Prod) 应该上线 Source Map 吗?
手写二分查找 (Binary Search)。时间复杂度?前提条件?
反转链表 (Reverse Linked List) 的思路?
爬楼梯 (Climbing Stairs): 每次爬 1 或 2 阶,N 阶有多少种爬法?
深度优先 (DFS) 和 广度优先 (BFS) 的区别?应用场景?
常见状态码: 301/302/304, 401/403, 502/504 的区别?
列举 5 个常见的 Request/Response Header 及其作用。
WebSocket 为什么要心跳检测 (Heartbeat)?如何实现?
如何开启 CSS 硬件加速?有什么副作用?
为什么 z-index: 9999 还是会被覆盖?什么是层叠上下文?
伪类 (:hover) 和 伪元素 (::before) 的区别?
生产环境出现重大 Bug (P0 级),你的处理流程是?
作为 Tech Lead,你如何指导初级工程师成长?
老板说"页面太慢了",你如何由点到面地进行优化?
两数之和 (Two Sum) 的 O(n) 解法?
有效的括号: "()[]{}"。栈的应用。
如何实现一个 LRU (Least Recently Used) 缓存?
IntersectionObserver 的应用场景?相比 scroll 事件的优势?
requestAnimationFrame (rAF) 相比 setTimeout 做动画的优势?
Shadow DOM 是什么?它实现了什么特性?
如何实现大文件上传 (GB 级别)?断点续传?
前端权限管理 (RBAC) 如何设计?按钮级权限?
什么是虚拟列表 (Virtual List)?如何实现?
TS 中 infer 关键字的作用?如何提取 Promise<T> 的 T?
TypeScript 中 namespace 已过时了吗?为什么推荐使用 Module?
为什么现在很少手写 useEffect fetch?React Query 解决了什么?
React.lazy + Suspense 如何实现组件懒加载 (Code Splitting)?
除了 React.memo,还有哪些避免重复渲染的方法?
什么是点击劫持 (Clickjacking)?如何防御?
script 标签的 integrity 属性有什么用?
CSP (内容安全策略) 如何配置?能防 XSS 吗?
Output? console.log(1); setTimeout(()=>console.log(2)); Promise.resolve().then(()=>console.log(3)); console.log(4);
Output? [] == ![] ? true/false?
for(var i=0...) setTimeout(()=>log(i)) 输出什么?如何改?
如何用 CSS 画一个三角形?
移动端 1px 边框变粗问题如何解决?
Buffer 是什么?为什么需要它?底层内存是在 V8 堆里吗?
进程 (Process) 和 线程 (Thread) 的区别?
CommonJS require 是同步还是异步?ESM import 呢?
MySQL 和 MongoDB 的区别?选型策略?
数据库索引 (Index) 原理 (B+树)?为什么快?缺点?
Redis 常见数据类型?缓存穿透/击穿/雪崩?
chmod 777 是什么意思?
正向代理和反向代理的区别?
单元测试 (Unit) 和 端到端测试 (E2E) 的区别?Jest vs Cypress?
TDD (测试驱动开发) 的流程?
Vue 2 Mixins 有什么缺点?Vue 3 怎么解决的?
Vue 3 为什么要移除 Filter (过滤器)?替代方案?
父子组件生命周期执行顺序?(Mounting & Updating)
Vue 3 中 $on, $off, $once 移除了,怎么实现 Event Bus?
Vue 2 中 delete obj.key 会触发视图更新吗?为什么?怎么解决?
Class 组件中请求数据应该放在哪里?componentWillMount 可以吗?
shouldComponentUpdate 的作用?PureComponent 的区别?
判断两个字符串是否是变位词 (Anagram)? "listen" vs "silent"
验证回文串 (忽略大小写和非字母数字)。
合并两个有序数组?双指针法?
最大子序和 (Maximum Subarray)?[-2,1,-3,4,-1,2,1,-5,4]
二叉树的最大深度?
翻转二叉树 (Google 面试题)。
移动端点击为什么由 300ms 延迟?怎么解决?
Touch 事件的顺序?点击穿透 (Ghost Click)?
GraphQL 相比 RESTful 的优势?
解释 MVC 和 MVVM 模式的区别?Vue 是哪种?
SEO 必须的 Meta 标签有哪些?Canonical 的作用?
Vite 的 HMR (热更) 原理?为什么比 Webpack 快?
Module Federation 如何解决依赖版本冲突?Singleton 模式?
为什么 Class 的方法很难被 Tree Shaking?
React Scheduler 为什么要用最小堆 (Min Heap)?
React 18 为什么用 Lane 模型代替 ExpirationTime?
React 17 事件委托绑定位置变了吗?为什么?
Vue 3 的静态提升 (Static Hoisting) 是因为什么?
Vue 3 的 Block Tree 解决了什么 diff 性能问题?
KeepAlive 组件是如何实现缓存的?
CORS 什么时候会发 OPTIONS 预检请求?
前端需要关心 SQL 注入吗?
如何优化 DNS 解析时间?
manifest.json 的作用?
版本号 1.2.3 代表什么?^ 和 ~ 的区别?
Code Review 主要看什么?(除了代码风格)
"use strict" 开启严格模式有什么限制?
为什么 0.1 + 0.2 !== 0.3?如何解决?
手写 new 操作符的实现步骤?
instanceof 的原理?手写实现?
Next.js Server Actions 解决了什么痛点?原理?
WebAssembly 是什么?为什么比 JS 快?前端怎么用?
Container Queries (@container) 和 Media Queries (@media) 的区别?
ArrayBuffer, TypedArray, Blob 的关系?
React Router 6 的 errorElement 是怎么工作的?
如何向非技术管理层解释"技术债"并争取时间清理?
Node.js Worker Threads 和 Cluster 的区别?
QUIC 协议如何解决 TCP 的队头阻塞问题?
滑动窗口算法 (Sliding Window) 解决什么问题?举例?
如何实现宽高比 (16:9)?旧方法 vs aspectRatio?
useCallback 和 useMemo 的真正区别?
设计模式:装饰器模式 (Decorator) 解决了什么问题?
在 Monorepo 中通过什么算法分析受影响的包 (Affected Projects)?
Composition API 相比 Options API 如何更好地逻辑复用?
SSE 和 WebSocket 的区别?场景?