前端要做的面试准备太多了,从八股文、算法到手写题、场景题,再到项目亮点包装。其中八股文又涵盖了前端三件套、前端工程化、底层原理、性能优化、浏览器原理、网络安全、TypeScript、设计模式、系统设计题,还有行为面试,甚至还有跨端方向的。以及现在 AI 时代,还得了解 AI Agent 的概念。

此外,面试准备还包括项目介绍和项目亮点包装,写简历。八股文的知识本身也存在层级:

  1. 第一层:知道是什么,大概知道怎么用
  2. 第二层:了解其背后的原理
  3. 第三层:能够将原理融会贯通到前端更底层的技术中

这么分析下来,如果把这些层级揉搓在一起,看不出里面的结构,盲目地准备面试,结果很有可能是感到 overwhelming,而且整个面试准备时间也拖得很长。

很多人准备前端面试时没有任何思路,直接就开始背八股文,比如网上找的那些八股文,还有面试经验,大部分是没有说清楚他们应聘的岗位以及准备的公司,如果你是初级的前端开发,在应聘中级或高级的岗位时,如果看到了高级岗位的面试经验,很可能产生一股怀疑自我的焦虑感。

所以准备面试的第一步,是先对自己目前的水平现状有一个清楚的了解:工作年限、之前负责的业务和技术项目、你的技术侧重点是什么、有没有什么可迁移的技术成果,以及明确你下一个向应聘的公司和岗位,是瞄准大厂、中厂还是小厂,以及你现在的职级是初级、中级还是高级。

明确了现状以及目标,那下一步就开始策略性地调整自己的面试准备内容。

从岗位划分,初级岗压实基础三件套和算法;中级岗补性能优化、工程化深度和项目包装;高级岗重点准备系统设计、架构思维和行为面试。

下面给出了一种参考。实际上,不同公司的职业体系也不一样。

初级岗(0-2年,校招/社招初级)
面试官想确认的是:你的基础扎不扎实,能不能上手干活。
三件套要求是”能说清楚”,比如事件循环、原型链、CSS 盒模型、Flex 布局、HTTP 基础,这些必须流利。算法重要性在初级岗出乎意料地高,因为项目经验不够,算法是为数不多能拉开差距的客观指标,建议至少刷 150 道以上,覆盖常见数据结构和高频题型。项目上不要求多惊艳,但要能把一个项目说清楚——你做了什么、为什么这么做、遇到了什么问题。
这个阶段最常见的失败原因是基础漏洞太多,被连续追问几个问题就断掉了。


中级岗(2-5年)
面试官想确认的是:你有没有在真实项目里解决过真实问题,而不只是做功能。
性能优化在这个层级是必问的,而且要有具体案例,”我们做了懒加载”远不够,要能说清楚优化前后的指标变化、用了什么工具定位问题、为什么选这个方案而不是别的方案。工程化深度指的是你对构建工具、模块化、自动化流程的理解不能停留在”会配置”层面,要能解释为什么这样配、遇到问题怎么排查。项目包装是这个阶段最容易提升的点,同样的经历,能不能把技术决策讲出来是关键,面试官希望看到你的判断力,而不只是执行力。
这个阶段最常见的失败原因是项目经历讲得太平,显得只是在”完成任务”而没有主动思考。


高级岗(5年以上,P6/P7 或 Senior)
面试官想确认的是:你能不能独立解决复杂问题,能不能影响团队和技术方向。
系统设计题在这里是重中之重,考察的是你面对一个开放性问题(比如”设计一个前端监控系统”)能不能拆解需求、识别核心矛盾、给出有取舍的方案,而不是唯一正确答案。架构思维体现在对技术选型的理解上,为什么用微前端、什么场景下用 SSR、组件库如何设计才能保证扩展性,这些问题没有标准答案,考察的是你的思考框架。行为面试在高级岗权重明显上升,因为高级工程师要带人、要推动跨团队合作,面试官需要通过你过去的行为判断你的软实力——比如你怎么推动一个有阻力的技术改造,怎么在资源不足的情况下做取舍。

这个阶段最常见的失败原因是技术深度够但视野窄,只关注自己的一亩三分地,缺乏对整体系统和团队的思考。


技术专家 / 资深工程师(P7+/T10+ 或 Staff/Principal Engineer)
面试官想确认的是:你能不能定义问题,而不只是解决问题。
这个层级的核心转变是从”执行者”到”定义者”,面试的考察维度也完全不同。
技术影响力是首要指标。不是你做了多少项目,而是你的技术决策影响了多大范围——是影响了一个功能、一个团队、一条业务线,还是整个公司的前端体系。有没有主导过技术标准的制定,有没有推动过跨团队的基础设施建设,这些是硬通货。
前沿技术的判断力比掌握程度更重要。面试官不在意你会不会用某个新框架,而在意你对技术趋势的判断——这个方向值不值得投入、什么时候引入合适、风险在哪里。对 AI 工程化、WebAssembly、边缘计算这些方向有没有自己的独立判断,而不是人云亦云。
技术布道和沉淀能力也会被考察,有没有写过被广泛引用的技术文章、有没有开源贡献、有没有在公司内部建立过知识沉淀机制。这些说明你能把个人能力转化为组织能力。
跨越技术的视野是这个层级和高级工程师最大的分水岭。资深工程师需要能从业务目标反推技术策略,懂得在技术理想和商业现实之间做权衡,能和产品、管理层在同一语言体系下对话。纯粹的技术极客在这个层级反而会吃亏。
面试形式上也会有变化,可能没有算法题,取而代之的是长达一小时的开放讨论,聊你对某个技术领域的整体看法,或者直接给一个公司级别的真实难题让你给出思路。有时候是 VP 或者 CTO 来面,考察的已经不是技术细节而是思维方式和格局。


从公司分类看来,
大厂(BAT、字节、美团、滴滴等)
算法权重很高,力扣中等偏难是基本门槛,有些组甚至有专门的算法轮。八股文要求深度,不是”知道是什么”就够的,会追问底层实现,比如 Vue 的响应式为什么这么设计、Fiber 架构解决了什么问题。系统设计题在 P6/P7 以上几乎必考。项目要有明确的技术亮点和数据支撑,”负责了某功能”这种描述会被直接追问到你答不上来为止。行为面试在外企(Google、Meta、微软)尤其重要,国内大厂相对少但也存在。


中厂(行业头部、独角兽、上市公司等)
算法考但难度可控,一般力扣简单到中等,更注重思路清晰。八股文广度优先,覆盖面要全,深度要求比大厂低一些。工程化能力是重点,Webpack/Vite 配置、CI/CD、Monorepo、性能优化的实际经验会被认真考察。项目经验的相关性很重要,做过类似业务场景会是加分项。


小厂(创业公司、小型外包、垂直领域公司)
算法基本不考或只考很简单的题。八股文点到为止,更关心你会不会用。上手能力是核心诉求,能不能快速出活,技术栈匹不匹配,能不能一个人扛起一个模块。有时候沟通能力、稳定性、薪资预期比技术本身更影响结果。

知道了面试准备的分类以及目标岗位的分类,下面说说我的观点。

  1. 职级分类中对面试的要求并不是边界清晰的。我认为如果你是一名初级开发,也可以从自己的角度出发,尝试从身边的案例去定义问题、解决问题,并不一定要等到成为技术专家后才开始;

  2. 建立独立性,也不一定要等到你是中级或高级职称时,才开始去思考“为什么这么做”。

  3. 摆脱学生思维,生活的经验告诉我,没有什么所谓的“完全准备”、“充分准备”或“100% 准备”后再开始做。进入职场后你会发现,很多事情都是:

    • 在不确定中找到确定的,去定义确定的
    • 在问题中找到一个相对的解决方案
    • 在混乱中梳理出相对清晰的一个结构
      没有绝对的说一定要等到一个什么状态,然后再开始做某件事情,这种是典型的“学生思维”。所以进入职场后,要早点明确社会真实的运行逻辑。真实社会是一个开放系统,因此它的解决方案也都是相对的。
  4. 从职业发展角度来讲,我认为一个理想的状态是:你的下一份工作,难度正好高出你当前水平一到两个层级。

这符合“最近发展区”(学习者独立完成任务的水平和在他人帮助下能达到的水平之间的区间。教育的核心就是在这个区间里提供”脚手架”(Scaffolding),随着学习者能力提升逐渐撤掉支撑):

  1. 保护心态:学习比当前水平高出两个层级的内容,你的勇气和心气不会很快被挫败。
  2. 跨越式提升:一旦你跳过了那个坎,就会获得巨大的提升。

所以,如果你是3年工作经验,勇敢地去冲中级,如果你之前小厂或者中厂,去试试大厂。

所以这篇文章的观点就写到这里。