跳到主要内容

前端

前端面试八股。这是和简历上「前端工程师」岗位最直接对应的模块 —— 数据库那几个模块在前端面里通常只占几分钟,而这里的内容才是主菜。

:::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 关于本模块 内容是公开流传的前端面试题整理,按主题而非按公司组织。标 🔥 的是出现频率最高的,建议先过这几页。 :::