
面试季又到了性能优化这个主题几乎每场前端面试都会碰到。我做了几年面试官也面过不少候选人发现大家对性能优化的理解往往停留在“知道几个名词”的层面——能说出懒加载、CDN、gzip但追问下去就说不清楚原理更说不出排查思路。这篇文章就按面试官真正想听的逻辑把前端性能优化的核心知识点串一遍既是八股文也是实战思路希望能帮你把这块内容讲成自己的优势项。先说一个我作为面试官的感受性能优化是最容易看出候选人“有没有真做过项目”的考察点。背概念的人只会罗列招式真正做过性能优化的人能讲清楚“为什么这么做”“做了之后效果如何”“遇到问题怎么排查”。所以这篇文章不打算简单堆砌知识点而是按“指标—瓶颈—手段—验证”的闭环来组织你按照这个闭环去准备面试时就能答出体系感。1. 性能优化全景面试官到底在考什么1.1 性能优化考核的底层逻辑面试官问性能优化表面上是考技术实际上是在判断三件事。第一你有没有一套衡量性能的指标体系。如果候选人开口就是“做性能优化”但说不清楚优化的目标指标是什么、基线是多少、怎么衡量效果那基本可以判定他没系统做过。真正的性能优化一定是从指标出发的先知道“哪里慢”才能决定“怎么优化”。第二你能不能定位瓶颈。性能问题可能出在网络、资源体积、JS执行、渲染、内存等各个环节一个合格的工程师应该有清晰的定位思路而不是上来就盲目加缓存、上CDN。第三你知不知道手段背后的原理。面试官特别喜欢追问“为什么”比如“为什么要做代码分割”“为什么transform比left性能好”“为什么会导致内存泄漏”。只背得出手段、讲不清原理在追问下往往会露馅。把这三件事想明白你就知道性能优化的准备重点不是背手段而是理解每个手段背后的浏览器工作原理和网络工作原理。1.2 先记住这套答题总框架从指标到手段我推荐按下面这条线来组织你的回答不管面试官怎么问你都能把话题拉回这个框架里。第一步说指标。性能优化的目标是一组可量化的指标包括加载类指标FCP、LCP、TTFB和交互类指标TBT、INP、CLS。这些指标对应着用户的主观体验加载快不快、操作跟不跟手、页面稳不稳定。第二步说瓶颈。根据指标定位瓶颈是网络传输慢还是资源体积大还是JS执行阻塞了渲染还是布局抖动导致掉帧。第三步说手段。针对瓶颈选择对应的优化手段并且说明每一步操作的理由。第四步说验证。优化之后要能通过Performance面板、Lighthouse、Web Vitals等工具验证效果证明优化是有效的。这套框架的优势在于它把零散的知识点串成了有逻辑的体系。面试官问任何一个具体手段你都能说出它属于哪个环节、解决了什么问题、依据是什么这就是“结构化答题”的效果。2. 加载性能优化从URL输入到首屏可交互2.1 网络层的三板斧缓存、CDN与HTTP优化加载性能优化的起点是网络层。用户访问一个页面首先经历DNS解析、TCP连接、TLS握手、发送HTTP请求、接收响应这一整条链路任何一个环节变慢都会拉长首屏时间。缓存是我认为性价比最高的优化手段。HTTP缓存分强缓存和协商缓存强缓存通过Cache-Control和Expires控制命中后浏览器直接读本地副本连请求都不发协商缓存通过Last-Modified和ETag控制需要发请求但服务器返回304节省响应体传输。实际项目中要特别注意Cache-Control的配置策略HTML文件建议no-cache每次都验证静态资源JS、CSS、图片建议immutable加长缓存时间配合文件名hash实现更新时精确失效。CDN内容分发网络解决的是物理距离问题。面试时可以这样讲原理CDN把静态资源分发到离用户最近的边缘节点用户请求时由边缘节点响应缩短网络往返时间RTT。同时CDN本身往往也承担了缓存的作用配合Cache-Control可以减少回源压力。这里有个容易被追问的点CDN缓存和HTTP缓存的关系。CDN是服务端缓存HTTP缓存是浏览器端缓存两者是协作关系浏览器先查本地缓存没命中再请求CDNCDN没命中才回源站。HTTP层面的优化现在主流是HTTP/2和HTTP/3。HTTP/2的多路复用解决了HTTP/1.1的队头阻塞问题允许多个请求在一个TCP连接上并发传输所以升级HTTP/2之后前端常见的雪碧图、域名分片这些优化手段就变得不那么必要了。HTTP/3基于QUIC协议在弱网环境下丢包重传的恢复更快。面试中能说出这个演进逻辑会显得你对网络原理有过系统了解。2.2 资源加载策略懒加载、预加载与优先级控制网络层做完接下来是资源加载策略。这里要区分清楚懒加载、预加载、预判加载这几个概念因为面试经常放在一起追问。懒加载的核心思想是“非首屏资源先不加载等需要时再加载”。最经典的场景是图片懒加载通过IntersectionObserver监听元素是否进入视口进入后再把>