前端
前端面试八股。这是和简历上「前端工程师」岗位最直接对应的模块 —— 数据库那几个模块在前端面里通常只占几分钟,而这里的内容才是主菜。
:::tip 速览 前端面试的权重分布大致是:JS 语言核心 + 异步 > 框架原理 > 浏览器与网络 > 工程化 > 性能优化 > CSS > TypeScript。手写题几乎每轮都有。
一条贯穿的主线:JS 是单线程的,所以一切异步都靠事件循环调度;浏览器渲染和 JS 执行在同一个主线程上,所以长任务会卡住渲染;React 的 Fiber 架构就是为了把渲染工作切片,让它可以被打断。这三件事串起来能解释前端性能优化的大部分手段。 :::
| 条目 | 核心问题 |
|---|---|
| 🔥 高频问答速查 | 面试前过一遍,每条给最短答案 + 链接 |
| 🔥 JS 语言核心 | 类型、原型链、this、闭包、作用域链 |
| 🔥 事件循环与异步 | 宏任务微任务、Promise 原理、async/await 本质 |
| 🔥 手写题集 | Promise、bind、深拷贝、防抖节流、柯里化、new |
| 浏览器原理 | 渲染流程、重排重绘、事件机制、存储、垃圾回收 |
| 网络与缓存 | HTTP 演进、缓存策略、HTTPS、跨域方案 |
| 🔥 React 原理 | Fiber、Hooks 实现、diff、合成事件、状态管理 |
| 性能优化 | Core Web Vitals、首屏、资源加载、长任务 |
| 工程化与构建 | 模块化演进、Webpack / Vite 原理、构建优化 |
| CSS 与布局 | BFC、层叠上下文、Flex / Grid、动画性能 |
| TypeScript | 类型系统、泛型、工具类型、类型体操 |
| Next.js 与 SSR | 渲染模式、水合、App Router、RSC |
高频开场题
说说你最近在做什么项目,遇到的最大技术难点是什么? 这是真正权重最高的问题,也是八股之外的部分。要准备的不是知识点,而是对自己做过的事的结构化复述:背景 → 难点 → 候选方案 → 为什么选这个 → 量化结果 → 现在重做会怎么改。
前端性能优化你会从哪些方面入手? 别一上来背清单。先问「优化什么指标」——是首屏(LCP)、交互响应(INP)、还是布局稳定性(CLS)?不同指标的手段完全不同。然后按「测量 → 定位瓶颈 → 针对性优化 → 验证」的流程讲。详见性能优化。
为什么 JS 是单线程的? 因为它要操作 DOM。如果多线程同时修改同一个 DOM 节点,就需要复杂的锁机制,这对脚本语言来说代价太高。Web Worker 提供了多线程能力,但它访问不到 DOM,正是为了规避这个问题。
:::note 关于本模块 内容是公开流传的前端面试题整理,按主题而非按公司组织。标 🔥 的是出现频率最高的,建议先过这几页。 :::