
金三银四又到了朋友圈里跳槽的人明显多起来了。前阵子我也刚结束一轮社招面试投了十来家前端岗从前期的简历打磨到后期的复盘谈薪整个流程走下来收获不少。这篇文章不聊虚的纯粹把我面试遇到的真实题目、踩过的坑、摸索出来的准备方法整理出来给正在看机会或者准备看机会的朋友一个参考尤其是工作两三年想挪一挪位置的前端同行。我这轮面的是社招前端岗方向偏中后台和可视化也有涉及移动端 H5 和微前端的场景。虽然每家公司的侧重点不太一样但整体来看社招面试和校招最大的区别在于没人太关心你把八股文背得多熟而是关心你真正做过多复杂的项目、遇到问题怎么解决、代码质量靠不靠谱。抓住这一点整个准备思路就能清晰很多。1. 面试前一个月简历、项目梳理和投递节奏1.1 简历怎么改才不会被筛掉我在这次跳槽前先做了一件事把旧简历拿出来重新审视发现问题一大堆。最典型的就是把技术栈列了一长串什么 vue2 vue3 react uni-app 小程序全写上看着百花齐放其实容易被 HR 归入“什么都会一点但什么都不精”的池子。后来改成了“主 Vue 3 TypeScript熟练使用 Vite 和 Webpack能上手 React”这版明显回复率高很多。再一个重点是项目描述。大多数人的简历写项目是用 STAR 结构但问题出在“行动”和“结果”写得太虚。比如“负责某某管理系统开发”就是无效描述改成“主导订单中心重构将页面首屏时间从 2.8s 优化到 1.2s代码体积减少 40%”这个才有记忆点。项目难点也要点出来比如“解决了大数据量表格渲染卡顿问题采用虚拟滚动方案列表渲染 10 万行数据帧率稳定在 50fps 以上”这就是能勾住面试官去提问的点。投递节奏方面金三银四其实不用急着第一周就海投。我个人的经验是先用两三天把简历改到自认为七十分以上然后挑一家不是第一目标的公司先面一轮主要用来练手和暴露问题面完立刻复盘遇到答不上来的题马上查漏补缺。带着这轮经验再去面真正心仪的公司状态会完全不一样。1.2 项目梳理准备好一个能讲 20 分钟的主线故事社招面试基本逃不掉“讲一个你最近做的项目”这个问题。我这次前两场面试在这上面吃了亏讲的时候东扯一句西扯一句面试官跟得也很吃力。后来我认真把手里最有技术含金量的一个项目拿出来按照固定框架重新梳理了一遍项目背景也就是为什么要做这个东西当时业务上面临什么痛点。我的角色和职责是自己主导还是协作负责哪几个模块。技术选型为什么选 Vue 3 而不是 React为什么用 Zustand 而不用 Pinia。架构和核心设计尽量画清楚模块关系把数据流讲明白。遇到的最大难题比如历史数据兼容、并发冲突、性能瓶颈以及我怎么定位和解决。最终结果和复盘包括数据指标和如果再让我做一次哪里会不一样。这套框架准备完以后我还会把每个环节可能被追问的细节都自己过一遍。比如提到虚拟滚动就要能讲清楚它是怎么计算可视区、怎么复用 DOM 节点的否则面试官顺着往下问两三个层次就会露馅。项目故事一定要做到即使对方不是做你这个业务的人也能听明白你做了什么、为什么这么做、做完效果怎么样。2. 社招高频考点八股文要背到什么程度才够用2.1 基础八股闭包、原型链、异步和事件循环说实话社招面试几乎没有哪家完全不问基础的但大家问的方式已经从“请解释一下闭包”变成了“这段代码输出什么”或者“这个场景你会怎么设计”。所以光会背定义是不够的得真的能吃透。异步和事件循环是最高频的考察点几乎每一面都会碰到。常见的考法有 setTimeout、Promise、async/await 混在一起让你说输出顺序结合微任务和宏任务的执行顺序再深入到 requestAnimationFrame 和 requestIdleCallback 的时机区别。我之前一位面试官问得很刁钻“如果 setTimeout 的延迟时间设为 0它真的会立即执行吗”这个问题看着简单但要回答完整就得扯到浏览器最小时延、事件循环的当前任务队列状态还有定时器在后台标签页的表现。闭包和原型链则是另一类常青树。社招的追问往往更深入比如给了闭包问你“这个变量什么时候被回收”这就涉及到 V8 引擎的垃圾回收机制了。原型链也一样面试官会让你手写一个实现继承的代码然后追问 ES6 class 和构造函数继承到底有什么区别、super 关键字是怎么工作的。这块如果底子薄建议重新看一遍《JavaScript 高级程序设计》前几章比只看面试题理解要扎实得多。2.2 框架和工程化Vue 和 React 到底怎么考我这轮面试遇到的主流框架题集中在 Vue 3 上React 也有一两家问了。Vue 3 几乎必问的是响应式原理computed 和 watch 的区别以及 setup 语法糖和选项式 API 的取舍。其中“Vue 3 的响应式为什么要从 Object.defineProperty 换成 Proxy”这个问题要把两者的差异、局限性、以及 Vue 3 如何解决数组拦截和动态新增属性这些问题讲清楚才算是准备好了。接下来就是性能优化、虚拟 DOM、diff 算法这类题。社招的虚拟 DOM 考法和校招不太一样不是让你背 patch 过程而是给你一个场景让你分析渲染性能。比如一个列表组件里有 1000 个节点每秒钟更新其中一个节点的数据整个列表都会重新渲染吗怎么优化。这些问题如果没有真正调优过线上项目单靠背题很容易卡壳。工程化方面问得比我想象的多。Vite 为什么比 Webpack 快、Tree Shaking 的原理、ESM 和 CJS 的区别、如何优化 CI 构建时间这些都是高频题。还碰到一个让我当时一愣的问题“你负责的前端项目构建要 3 分钟怎么优化到 1 分钟以内”。这种题考察的不只是知识点而是你有没有真的深入关注过构建产物有没有拆过包、配过缓存、搞过并行构建。2.3 2026 年新趋势AI 提效和微前端被问得很多跟往年不太一样的是这轮面试好几家公司都问到了 AI 相关的问题。不是让我去造 AI而是问“你平时用 AI 工具提效吗怎么用在日常开发里的”“你怎么保证 AI 生成的代码质量”。有一个公司甚至出了一个场景题如果让你在一个旧系统里快速加一批 CRUD 页面你会怎么借助 AI 完成同时保证代码风格和类型安全。这种题没有标准答案但很能反映一个人的工作习惯。我的回答是平时会用 AI 写一些重复性的模板代码、正则表达式、单元测试用例也会把复杂函数的注释和文档生成交给 AI但核心业务逻辑一定是我自己写而且会对 AI 生成的代码做严格 review尤其是类型定义和边界条件。另外还会要求 AI 按团队已有的代码规范输出方便直接接入。这个思路对方还比较认可。微前端也是被反复提到的点尤其是中大型公司。考察内容包括 qiankun 的原理、JS 沙箱怎么隔离、样式隔离怎么做、子应用之间怎么通信。光会说“用过 qiankun”是不够的面试官会直接追问“如果你现在要设计一个微前端框架你会怎么设计应用加载机制”。这个问题要答好必须对 single-spa 的生命周期模型有理解知道 prefetch、沙箱机制、依赖共享这几个方向。3. 面试轮次实战记录从一面到 HR 面的真实感受3.1 技术一面围绕简历深挖和场景题技术一面的核心就是验证简历的真实性所以面试官基本是围绕简历上的技术栈和项目来问的。我这轮遇到的一面对我简历里写的 Canvas 可视化项目特别感兴趣连续问了一个多小时从坐标系转换到 Canvas 的离屏渲染再到鼠标拾取元素时怎么判断命中的图形全程按着我的项目来走。一面也会有一些场景题常见的是“让你设计一个前端日志上报系统你会怎么做”。这种题目表面考设计能力实际上考查的是对错误边界、性能影响、数据结构、上报策略这些方面的考量。我当时从监控目标出发把错误捕获分类、采样率、批量上报、失败重试、上报对主流程的影响这些点都说了对方又追问了“如果用户已经断网离线日志怎么上报”参考方案是把日志存入 localStorage 或 IndexedDB下次网络恢复时再统一发送。这些细节最好提前积累一些方案不然现场想容易结构化不够。一面最后通常会留几分钟让我们反问这也是加分项可以问团队的技术栈、项目的技术挑战、上线节奏、团队目前最头痛的问题等等比问“加班多不多”要专业很多。3.2 技术二面/终面架构思维和跨端能力的考验二面一般不再是纯编码问答而是更偏向架构设计、技术判断和带人协作的能力。我有一次终面被要求现场设计一个低代码平台的渲染器面试官还给出了约束不能使用第三方拖拽库不能牺牲运行时性能。这种题必须边问边聊不要闷头设计。我当时是先确认了目标用户是后台系统开发者而非运营人员然后拆成拖拽画布、组件注册、数据绑定和运行时渲染四块。组件注册用统一 schema 描述JSON 作为 DSL渲染器用递归组件树方式实现。对方感兴趣的是我如何处理用户自定义组件和平台内置组件的差异我回答内置组件打包进渲染器自定义组件走异步加载注册表。面试官比较认可这种先反推场景再取舍方案的方式。跨端题也出现了几次因为不少公司在做小程序和 H5 双端复用。会问 Taro/uni-app 这种跨端框架的原理和局限比如如何在不同端适配 Router、Storage 等 API 差异。还有公司问到 Flutter 和 React Native 的选型问题虽然我不是这个方向的但思路要清楚核心看团队资源是偏前端还是偏客户端以及业务对动态化更新要求的程度。3.3 HR 面谈薪、离职原因和个人规划到最后 HR 面的时候大部分候选人都会松一口气觉得技术关过了就稳了。但其实 HR 面挂人的情况并不少见尤其在稳定性评估上。我被问过“你为什么在这个时间点选择看机会”“你前东家哪里让你不满意”“你的职业规划是什么”这几类问题回答需要坦诚但别抱怨前东家。谈薪这块我自己的经验是先用招聘软件或者朋友打听了解目标岗位的薪资带宽然后给出一个合理且有依据的数字最好是“base 涨幅”的组合。不要上来就狮子大开口也别因为面了一轮很累就松口。HR 问有没有其他 offer 时实事求是说自己在面哪些方向就行不必透露具体金额但可以说“目前有一个 30% 涨幅的机会在考虑中”让对方知道你手里有筹码。另外 HR 面一定会问入职时间一般一到两周是比较合理的缓冲期方便交接手头的工作。这方面建议提前跟现在的组长沟通好不要在面试期间就闹出不愉快离职留个好口碑后续背调也顺利。4. 手写题和机试这些题目出现频率最高4.1 手写题高频题型和解题模板社招手写题跟校招不太一样不太会考那种特别生僻的算法更偏实用性和原理验证。我这轮遇到的高频手写题有手写防抖和节流函数然后说说它们的应用场景区别。手写深拷贝要求支持数组、日期、正则还要能解决循环引用。手写 Promise.all、Promise.race有时候还会要求另写一个 Promise.allSettled。实现一个简单的 EventEmitter包含 on、off、once、emit。手写一个组合函数的 compose。实现一个 flat 函数把多层嵌套数组展开要考虑深度参数。写这些题的时候有两个习惯特别加分第一是写之前先口头确认理解比如“你要的是一个支持迭代器和深度控制的 flat 吗”能展示你的沟通意识和代码审视能力。第二是写完以后主动说一两个边界情况怎么处理比如深拷贝遇到循环引用用 WeakMapPromise.all 遇到非 Promise 项先做 Promise.resolve 转换这很容易让面试官印象分上涨。4.2 机试不是刷算法是在有限时间内搭一个可用页面这轮面试有一家公司给我安排了三个小时的机试要求用 Vue 3 TypeScript 实现一个带搜索、筛选、分页和详情弹窗的列表页数据由后端 mock 接口返回。整体看每个功能点都不难但坑在于三个小时要完成一整套页面的工程搭建、组件拆分、类型定义和接口联调时间非常紧张。我后来复盘了下机试比较合理的节奏前十五分钟只用来读题和设计目录结构先想清楚需要哪几个组件、状态放哪一层、接口怎么封装再动手写代码。页面骨架和接口先跑通实现完核心功能后再回来处理边界状态比如 loading、空数据、接口报错。机试很看完成度功能完整比过度设计重要得多。另外有个细节容易被忽略就是机试代码的工程化意识。即使是一个 demo 项目也有必要加上 ESLint 和基本的目录分层体现出日常开发习惯是规范的。我记得那次机试我抽了十分钟把接口层单独拆了一个 api 目录并写了个简单的 request 封装面试官在复盘时还专门提到了这一点说“看得出平时写代码是比较规整的”。4.3 算法题不用刷题海但每个类型至少准备两道社招前端对算法要求因公司而异大厂和部分中大型公司基本会面一两道 leetcode 中等难度的算法题。我遇到的题型集中在数组和字符串处理、双指针、哈希表、二叉树的遍历和层序、动态规划的简单题。比较典型的像“两数之和”“最长无重复子串”“反转链表”“二叉树的最大深度”。准备算法不能靠临时抱佛脚建议提前一个月开始每天抽半小时刷两到三道高频题。但这里有个容易走偏的地方就是很多人刷题只刷思路不动手面试时手写代码容易卡壳。所以建议每天坚持手敲代码而不是只看题解。优先把题解背熟还不如把思路真正弄懂因为面试时面试官大概率会追问“时间复杂度是多少”“为什么这样可以保证不重复”。同时也别把算法当成唯一的衡量标准。我印象很深的是有一次算法题我用暴力解法写出来了面试官没有直接让我优化而是问我在真实业务场景里会不会这样写我回答会更关注数据量级和可读性然后再讨论是否需要优化这个沟通过程也让对方比较满意。5. 面试后的复盘与 offer 决策别急着签字5.1 面试记录清单和复盘方法论每次面试结束后我会趁热打铁把面试全过程记录下来。不是简单写“问了什么”而是做成表格把题目、我当时的回答、正确答案和差距分析分开列。这里有个非常重要的习惯凡是想不起来的题一定在当天查出答案并且用一句自己的话重新复述一遍而不是直接粘贴网上的答案。对我帮助最大的是把每次答得不好的问题收集起来按知识点归类。比如我发现自己在“浏览器缓存机制”这个点上被连续问挂了两次就说明这个知识点是真的理解不到位而不是临场紧张的问题。于是花了一个晚上把强缓存、协商缓存、缓存位置、缓存策略的完整链路重新梳理了一遍还画了张流程图。后面再被问到这个问题时能直接从整个链路而不是单个节点来回答明显从容了很多。复盘时还有一点容易被忽略就是每次面试完我们作为候选人也要判断这家公司是否适合自己。面试过程中面试官的技术水平、沟通耐心程度、提问的方式和角度其实很能反映团队氛围。如果一场面试里面试官全程都在追问有没有背过标准答案而没有给你空间展示实际解决问题的能力这种团队进去之后大概率沟通成本也会很高。5.2 谈 offer 时怎么比较和避坑到收 offer 的时候第一件事是不要只看月薪数字。我有个观念是综合年薪、公积金比例、年终奖发放方式、试用期时长和薪资折扣、加班强度、团队技术栈匹配度、业务前景这些因素在一起才是一个完整的“价格”。很多公司在谈薪资时把自己包装得很慷慨但合同里有不少细节比如试用期薪资是 80%、年终奖是按绩效浮动、入职一年后才能参与调薪这些一定要在签字前问清楚。具体到公积金比例不同公司差异非常大。有公司按 5% 交有公司按 12% 交同样是 20k 的月薪一年的公积金差距能到两万多这笔钱是实实在在的收益。建议在 HR 面的时候直接问清楚公积金比例和基数一般 HR 都会直接回答。另一个容易踩的坑是候选人的简历被 HR 拿去“养鱼”。有的公司会同时推进多个候选人用你的 offer 去压别人的价。面对这种情况最好的办法就是保持自己的节奏不要表现出特别着急的倾向。如果对方问你有其他 offer 吗能透露一个自己在等就可以不要谎报因为背调阶段会核实实际情况。接不接 offer 最终还是要回归到个人发展上跟对一个靠谱的团队比多谈两三 k 月薪重要得多。6. 一些想对准备跳槽的朋友说的实在话写到这里脑海里又过了一遍这轮跳槽的整个经历。最大的感受是前端这个行业确实越来越卷了但只要方法对社招面试没有想象中那么可怕。第一不要只顾着刷题而忽略项目复盘。面试官问八股文考察的是基础理解但面试官真正在意的深度是通过项目展示出来的。你在项目里踩过的每一个坑、做过的每一次优化都是比背诵更有说服力的谈资。第二准备要趁早。金三银四真正面试高峰很集中等三月才开始改简历、梳理项目往往手忙脚乱。最好提前一到两个月就开始准备面试题、刷算法、整理项目甚至可以先投几家练练手。第三也是我个人踩过几次坑之后的体会面试是双向选择保持好自己的节奏和底线。不要因为面挂了就否定自己也不要因为拿了几个 offer 就盲目跳槽。把每一次面试当成一次免费的技术咨询面试官提出的问题往往就是你技术盲区的提示面一次补一个盲点这种成长速度是平时工作中很难获得的。希望这篇面经能给正在准备前端社招的朋友带来一些参考价值。面试没有标准答案每个人的技术栈和项目经历也不一样但准备的方法和心态是可以通用的。祝大家在这个金三银四都能拿到心仪的 offer。