尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

大厂前端面试核心考点与实战复盘:从基础到项目深挖

大厂前端面试核心考点与实战复盘:从基础到项目深挖 开头先交代一下背景吧。我是去年底到今年三四月份集中面了一批大厂前端岗包括字节、阿里、蚂蚁、美团、拼多多、快手这几家其中走到HR终面的有5家最后拿了3个offer。这篇总结我拖了很久才写主要是因为面试题这东西整理起来实在太碎而且很多问题其实没有标准答案纯粹考的是你平时的积累和临场反应。但正因为我面得多才更清楚现在大厂前端面试的套路已经和两三年前完全不一样了。以前背背八股、看看源码解析就能应付的日子早就过去了现在的面试官更喜欢从一个真实业务场景出发一层一层往下挖直到把你问穿为止。这篇面经我尽量还原面试现场的真实问答把我当时的回答思路、面试官的追问方向、以及事后复盘时发现更好的回答方式都写出来。不是单纯给你一份答案让你背而是帮你理解每一类问题背后的考察逻辑这样你遇到变形题也能从容应对。内容会覆盖简历投递与面试流程、八股核心考点、手写题与场景设计题、项目深挖话术、HR面与谈薪技巧这几个大块。不管你是准备校招、社招还是跳槽这份总结应该都能帮你少走不少弯路。1. 面试整体流程与大厂考核逻辑先聊流程。现在大厂前端岗的面试轮次基本固定在四到五轮我按最常见的情况列一下。第一轮通常是技术初面由组内资深工程师或者技术Lead来面时长45分钟到1小时。这一轮的核心目的是确认你“能干活”所以考察重点集中在JS基础、CSS布局、网络协议、手写代码这四块。第二轮是技术复面一般是部门技术专家或者主管面。这一轮会把重心转向项目深挖和架构设计面试官会围绕你简历上写的项目不断追问考察你的技术深度和方案取舍能力。第三轮是交叉面由其他部门的同级工程师来面。这一轮主要看你的技术视野和合作能力有时候会出一些开放性问题甚至会有比较刁钻的场景题。第四轮是HR面如果到了这轮基本说明技术面都过了。HR会重点考察你的稳定性、团队协作、职业规划以及上一份工作的离职原因。大厂不同流程也会略有差异。字节喜欢三轮技术面连着面完中途不休息阿里和蚂蚁一般是两轮技术面过了才约交叉面美团和拼多多相对快一些有时候三轮技术面会压缩成两轮。简历投递环节也要说一句现在大厂基本都走内推或者猎头渠道海投进面试的概率极低。我当年海投了十几家收到的面试邀约几乎全部来自内推。再说考核逻辑。根据我几个在字节和阿里做面试官的朋友透露大厂内部对候选人有一套统一的评估维度大致包括基础扎实度、工程化能力、业务理解力、技术热情、沟通表达、潜力判断。基础扎实度占总评的比重很高尤其是第一轮面试如果JS和网络基础答得稀烂后面基本没戏。工程化能力指的是你对构建工具、CI/CD、代码规范、监控告警这些基础设施的理解现在大厂面试基本上必问Webpack和Vite还会追问打包产物体积优化。业务理解力是社招加分的重点应届生可以适当放宽但如果是一年以上经验的面经项目深挖环节问不出业务沉淀会非常减分。从面试轮次来看每一轮的淘汰率大致是初面30%到40%复面50%左右交叉面20%到30%HR面10%左右。所以真正的分水岭在复面很多人倒在复面不是因为技术不行而是因为项目讲得没深度。2. 核心考点拆解JS、浏览器与网络这部分是面试的重头戏也是大厂刷人最多的环节。我按知识点类别拆开讲每个类别放几个我实际被问到的题目附上我的回答思路和面试官的追问。2.1 JavaScript基础闭包、原型链与异步JS基础这部分问得最多的就是闭包、原型链、事件循环、this指向。这几个点看似基础但面试官总有办法问到你想不到的角度。先说闭包。字节一面问了这么一道题“闭包会造成内存泄漏吗什么情况下会怎么排查”我当时的回答是闭包本身不会必然导致内存泄漏关键在于闭包引用的作用域链是否被外部长期持有。比如一个返回函数的闭包如果外部一直持有这个函数引用那闭包内部引用的变量就永远不会被GC回收。排查的话可以用Chrome DevTools的Memory面板录Heap Snapshot然后对比操作前后的内存快照看是否有脱离DOM树的节点或者大对象没有被回收。面试官接着追问“如果闭包引用了一个DOM元素但DOM元素已经移除了会泄漏吗”这个问题问得很细答案是会的因为闭包持有的是DOM对象的JS引用DOM从页面移除只是从render tree里删掉但JS对象仍然存在GC不会回收。解决办法就是在移除DOM之前手动把引用置空。原型链这块大厂喜欢用instanceof的底层实现来考。拼多多问了“手写instanceof的源码”这个其实不难核心就是递归检查构造函数的prototype是否出现在实例的原型链上。我当场写了一遍然后面试官加了一个追问如果用Symbol.hasInstance改写行为会怎样这个知识点比较偏我知道有这个API但没仔细研究过只好老老实实说不太了解后来复盘的时候把这块补上了。Event Loop是必考题。美团的面试官问了一个比较经典的组合“宏任务与微任务的执行顺序、在什么阶段执行微任务、Node.js和浏览器里的Event Loop有什么区别”。我这块准备得比较充分所以答得比较顺。需要注意的点是Node.js 11版本之后微任务的行为已经和浏览器对齐了在每执行一个宏任务之后都会清空微任务队列所以很多旧面经里的结论已经过时了。2.2 浏览器渲染原理与性能优化浏览器相关的问题中渲染原理出现频率极高。阿里的面试官问过“从输入URL到页面展示中间发生了什么”这个问题虽然老但考察的知识面非常广可以从网络请求、DNS解析、TCP握手、HTTP缓存、DOM构建、CSSOM构建、渲染树合并、图层合成一路讲下来。我建议各位准备一个分层递进的回答模板第一层先说整体链路第二层深入几个关键节点等面试官追问某个点再往深挖。这样既显得有全局观又不会因为一开始讲太细导致节奏失控。还有一个高频题是“重排和重绘的区别什么操作会触发重排”。这个除了基础概念最好结合性能优化讲。我当时额外讲了forced reflow的概念说读取offsetWidth、clientHeight这些属性会强制同步执行布局计算所以应该避免在循环里读取这些属性。面试官听完明显比较满意后面追问的CSS动画性能问题也顺带解决了。关于性能优化大厂现在更关注真实用户数据。快手面试官问过我“如果线上页面首屏加载很慢你怎么排查”这个必须结合性能监控工具来讲我说了Performance API、Lighthouse、Web Vitals这几个工具然后给出了一个排查路径先用CrUX数据看真实用户分布再用Performance面板定位瓶颈最后针对TTFB、资源加载、JS执行时间三个维度逐一优化。面试官追问了TTFB优化方案这个就从服务器响应速度、CDN命中率、缓存策略几个方向回答。2.3 网络协议HTTP缓存与HTTPS网络协议里面HTTP缓存和HTTPS握手是最常考的两个点。HTTP缓存题我面了三家大厂每次都会被问到所以这里重点说下。核心要知道强缓存和协商缓存的区别以及对应的响应头字段。强缓存用Cache-Control和Expires协商缓存用Last-Modified和ETag。面试官通常还会追问“Cache-Control的public、private、no-cache、no-store分别是什么意思”以及“如果同时设置了Cache-Control和Expires哪个优先级更高”。答案分别是no-cache表示会缓存但每次需要验证优先级Cache-Control更高。有个容易踩坑的点是ETag和Last-Modified同时使用时强缓存命中了就不会发起请求协商缓存才需要比较Last-Modified和ETag。另外还要知道ETag默认使用哈希值在分布式场景下需要注意负载均衡导致ETag不一致的问题。HTTPS握手我建议准备一个完整流程包括客户端发送ClientHello、服务端返回证书、双方交换密钥、生成会话密钥这些步骤。然后被追问“证书是怎么校验的”这部分需要补充CA证书链、数字签名验证、公钥解密这几个环节。我问了几个同行大多数人都能说出握手步骤但细节说得不够所以这块建议多花点时间准备。3. 框架源码与工程化React和Vue的底层逻辑到复面阶段框架源码理解是必须具备的认知。很多同学用过React和Vue但没有系统理解过框架的底层实现面试官一问到原理就露馅。3.1 React核心Fiber架构与渲染流程React是字节、拼多多、快手面试的重头戏。被问最多的是Fiber架构、useEffect的时机、以及React 18并发特性。字节面试官问过“React 16之后为什么要引入Fiber架构”这个问题要从旧版React的递归渲染说起了。旧版协调过程是同步递归的一旦开始渲染就不能中断当组件树很大时会造成主线程长期阻塞用户交互卡顿。Fiber的核心是让协调过程变成可中断的增量渲染每处理完一个Fiber节点就检查是否有更高优先级的工作需要执行如果有就让出主线程。这样就把同步更新撕成小片在浏览器帧之间插入执行。Fiber引入后React的render阶段可以被打断但commit阶段依然是同步的。面试官追问了“打断之后为什么状态不会错乱”我当时的回答是Fiber节点上保存了链表关系被打断后会从根节点重新开始遍历但workInProgress树是重新构建的不会直接改current树等commit阶段再整体切换。这样双缓冲机制保证了用户不会看到半更新状态。React 18的并发特性我记得被问过具体的有useTransition和useDeferredValue面试官比较喜欢问这俩的区别和使用场景。useTransition适合包裹那些不是特别紧急的状态更新比如用户输入期间触发的列表过滤useDeferredValue则是告诉React这个值可以延迟更新适合场景是搜索框配合下拉展示。核心理解是它们都通过降低优先级来避免阻塞关键交互。3.2 Vue核心响应式原理与nextTick虽然大厂React岗位更多但Vue仍然是很多团队的主栈。阿里和蚂蚁的部门用Vue的也有不少。Vue最常问的是响应式原理和nextTick机制。Vue 3的响应式是基于Proxy实现的这个需要从get和set拦截器的角度讲清楚依赖收集和触发更新的流程。我面试时画了一个简单的依赖关系图来解释组件渲染时访问响应式数据会触发getget里通过activeEffect收集当前组件对应的副作用函数当数据被修改时触发setset里重新执行收集到的副作用函数来触发组件更新。面试官追问了“和Vue 2的Object.defineProperty相比Proxy解决了什么问题”。这块可以讲几点新增属性检测、数组索引修改检测、性能开销、以及嵌套对象会惰性代理等。注意这里不要只背结论最好能说出Vue 2处理不了新增属性所以才有了Vue.set这个API这个反差式记忆会让回答更生动。nextTick也是高频题。我面蚂蚁的时候被追问得非常细“nextTick为什么能拿到更新后的DOM”我的理解是Vue在数据更新后DOM的更新不是同步的而是异步批量执行的nextTick注册的回调会在DOM更新完成后触发所以能拿到最新的DOM结构。Vue 3的nextTick返回Promise内部用Promise.resolve().then()来调度异步微任务的执行顺序保证了回调在DOM更新之后运行。3.3 工程化Webpack与Vite对比工程化方向现在问得比以前更多了。我总结下来面试官最关心的是三个点Webpack构建原理、Webpack性能优化、Vite为什么快。Webpack构建原理核心是Tapable插件机制和Loader/Plugin的区别。这个必须答清楚Loader是纯函数负责对文件内容做转换比如babel-loader把ES6转成ES5css-loader处理CSS里的url和importPlugin则是在构建生命周期中挂载钩子来做更复杂的任务比如打包体积分析、代码分割、热更新等。Webpack性能优化的方向可以从两个维度回答构建速度和产物体积。构建速度方面可以用thread-loader开启多线程构建用cache-loader缓存loader结果用DLLPlugin预编译公共依赖。产物体积方面核心是代码分割和Tree Shaking按路由拆分Chunk、提取公共依赖成单独Chunk、压缩代码去掉console和注释。Vite为什么比Webpack快很多人只答了“Vite用了ESM所以快”这个回答太表面了。我给的回答是Vite开发环境不打包利用浏览器原生ESM能力按需加载模块所以冷启动速度极快生产环境用Rollup打包虽然打包速度不一定比Webpack强但开发体验要好很多。另外Vite依赖预构建用esbuildesbuild用Go写的比JS写的编译器快几十倍这也是Vite冷启动快的关键。4. 手写题与场景设计题实战手写题是前端面试的硬门槛几乎每家都会考而且越来越倾向于场景化不是单纯让你背API。我把自己实际遇到的比较有代表性的手写题整理了一遍连同我当时的解题思路和优化过程都写出来。4.1 高频手写题防抖节流、深拷贝、Promise.all手写题里出现频率最高的几个防抖节流绝对排第一。美团一面直接说“手写防抖和节流并说下使用场景”。防抖的核心是clearTimeout加重新计时节流的核心是判断是否达到时间间隔这个不难但关键在于把边界情况处理好。我写的防抖是带leading参数的版本可以控制在延迟开始前是否立即执行一次这个进阶版写法很加分。深拷贝考察频率也很高但大厂不再满足于简单的递归版本。字节面试官要求手写深拷贝并追问“如何处理循环引用”。我的实现是增加WeakMap缓存在递归拷贝前先检查缓存是否已有该对象有就直接返回缓存引用。这样既解决循环引用也避免了相同引用被拷贝成两份不同对象的问题。接着面试官追问了Map、Set、Date、RegExp这几个特殊类型的处理我把这几类都做了类型判断和特判处理。Promise相关的手写题我面了三家大厂全部要求手写Promise.all。核心是记录当前完成的数量和结果数组然后用新Promise包裹。这里有几个需要注意的点返回的结果数组顺序必须和传入的Promise顺序一致任何一项resolve/reject后整体直接落定以及传入的数组可能包含非Promise值需要做Promise.resolve包装。快手面试官追加问了一个“Promise.allSettled和Promise.all的区别”这个知道概念就能答上来但要说明场景差异allSettled不会因为一个失败就整体失败适合并行请求中需要收集全部结果的情况。4.2 组件设计题虚拟列表与Tree组件组件设计题比一般的手写题难度更大考察的是你平时写组件时的抽象能力和性能意识。我面阿里的复面遇到一道虚拟列表题要求实现一个基础的虚拟列表支持固定高度条目滚动时只渲染可见区域。整个实现分三步第一步根据容器高度和每项高度计算出可渲染的条目数量第二步监听滚动事件根据scrollTop算出起始索引第三步通过绝对定位将要渲染的条目放在正确的偏移位置并在容器上下填充占位来撑起滚动条。核心代码量不复杂但在实际回答中需要把起始索引的计算写得严谨包括处理边界、减少不必要的重渲染。虚拟列表之后通常还会追问“如果条目高度不固定怎么办”这属于进阶题。我的回答是可以通过预估高度来初始化渲染位置并在实际渲染后动态修正每个条目的真实高度和总高度再配合缓存已经计算出高度的位置信息来优化滚动性能。Tree组件也考过美团的面试官让我设计一个Tree组件的核心数据结构和交互逻辑。这类问题主要考察数据结构的抽象能力我给的设计是用children字段表示子节点每个节点有key、label、children三项支持checked和expanded两个状态。交互逻辑里需要重点解决的是父子节点选中联动包括父节点选中后子节点全部选中、子节点部分选中时父节点处于半选状态。这是很典型的组件状态管理设计题建议自己提前在React和Vue两个框架里各实现一遍。4.3 场景设计题任务调度与异步并发控制近两年的面经里任务调度类的场景题出现频率非常高。我遇到的原题是实现一个并发控制函数最多同时运行N个任务并且支持任务队列动态插入。这个问题的核心是用一个队列保存待执行任务同时维护一个当前正在运行的任务计数器。每次有任务完成就从队列头取下一个任务执行。实际写的时候还要注意任务可能抛异常需要把promise的catch处理放在计数器逻辑之前否则一旦有任务异常计数器的减一操作不会执行会导致后续任务全部卡死。面试官还加追问“如果某个任务卡住了怎么办怎么加超时控制”这个可以用Promise.race包一层setTimeout来强制超时超时任务按失败处理同时不影响其他任务继续执行。我去字节面试时也遇到一个更开放的场景题假设页面需要一次性渲染一万条数据要求不卡顿你有哪些方案这题可以从很多角度回答虚拟列表、分片渲染、Web Worker计算、requestIdleCallback分批处理内容。我给的方案是分片渲染加虚拟列表的组合核心思路是不一次性加载所有数据而是通过时间切片让渲染在浏览器空闲时段分批执行同时配合窗口化的DOM节点数量来保证页面不卡顿。面试官对这个方案认可度比较高然后追问了requestIdleCallback和requestAnimationFrame的区别这个也需要提前准备。5. 项目深挖如何把项目讲出技术含量社招和技术比较好的校招生最大的分水岭就在项目深挖环节。很多人做过的业务是真实的代码量也不少但面试时讲出来就是没亮点。问题通常出在只会讲做了什么功能不会讲为什么这么做、遇到什么问题、怎么解决的、有没有对比过别的方案。5.1 项目讲法的核心方法论STAR 技术对标我给准备面试的朋友推荐过一个项目讲法的框架就是用STAR法则把业务背景、目标、行动、结果讲清楚再叠加技术对标来体现深度。具体来说每个项目都要提前准备好以下问题的答案这个项目解决了什么业务问题、为什么选择当前的技术方案而不是其他方案、项目中最大的技术挑战是什么、有没有性能问题、上线后带来多少业务收益。比如你做的是一个配置后台不要只说做了增删改查和权限控制而是要说配置下发延迟从原来多少秒优化到了多少毫秒权限体系为什么用RBAC而不是ABAC采用Vite替代Webpack后开发启动时间提升了多少。关键是把每个技术选择都跟业务收益挂钩体现方案取舍的能力。这样面试官在评价时就会觉得你不是在机械执行需求而是带着技术判断在做事。5.2 几十条高频项目追问与应对我把自己面试中被追问过的一些高频问题整理成一份清单各位准备面试时可以对着逐条自查。项目的前后端是怎么划分职责的接口定义谁来做遇到接口字段不满足需求时怎么处理用户的权限是怎么控制的前端拦截还是后端校验如果只做前端拦截有什么风险项目的构建流程是怎样的代码上线前有没有自动化检查环节你们项目里有没有做过性能优化做了哪些改进效果怎么样有数据支撑吗如果让你重新设计这个项目你觉得哪些地方可以做得更好项目里的公共组件是怎么抽取的有没有组件库规范和版本管理你在项目里遇到过最棘手的一个Bug是什么最后的排查过程是怎样的项目的错误监控体系怎么搭的报警阈值和降噪策略是怎么设计的你是怎么保证代码质量的有没有做过Code Review发现过什么典型问题项目的测试覆盖率大概多少前端自动化测试在你们项目里的落地情况如何平时写代码时如果没有刻意记录这些问题临场很容易答空。建议现在就开始维护一份属于自己的项目WIKI把每个做过的项目的技术决策、遇到的问题、数据改善都记录下来面试前翻一遍会有奇效。5.3 避免在深挖中被问穿的三个原则根据我的经验项目深挖环节被问穿通常有三个原因技术细节掌握不扎实、方案选择说不出理由、数据指标没有量化。针对第一个原因唯一解决方法是把自己负责的模块彻底吃透包括每一行核心代码为什么这么写、周边模块为什么这么设计、线上运行有哪些指标。第二个原因需要提前针对每个项目准备2到3个备选方案能说出为什么不选它们。第三个原因则从现在开始就要养成记录上线数据变化的习惯没有埋点的项目至少要对性能数据和业务数据有一个粗略的评估不能凭空编。参加过几次模拟面试后发现这些规则看起来简单实际做到的人很少主要是大家平时忙于业务没有留时间做技术复盘。所以最后给大家一个建议从现在开始每周花半小时写一份简短的技术周记记录本周解决的最有价值的问题一年下来你将收获一份超过50个技术案例的素材库这比任何面经都值钱。6. 高频八股题完整解答参考这一部分我把面试中出现的频率最高、最接近标准答案的题目完整地写一遍。不是让大家死记硬背而是提供一个回答的思路参考每个题我都标出了核心得分点背的时候知道重点在哪。6.1 HTTP相关从URL输入到页面展示、HTTP缓存、HTTPS建立过程URL输入到页面展示这个题建议分四个阶段回答每个阶段提几个关键点。导航阶段包含浏览器解析URL、DNS查询、TCP建立连接含TLS握手、发送HTTP请求、服务器响应资源加载阶段是浏览器从上到下解析HTML遇到CSS和JS时表现不同调用网络请求加载资源页面渲染阶段包括构建DOM树和CSSOM树、合并成渲染树、布局计算、绘制图层扩展环节是指script标签位置影响首屏体验可以讲解defer和async的区别。一个好的回答不仅讲流程还要体现出对性能判断的敏感度比如哪里延迟高、怎么优化。HTTP缓存这个题我推荐先说一句“HTTP缓存分为强缓存和协商缓存两种”这样后面所有细节就不乱。强缓存是本地直接读缓存不发请求协商缓存在本地有缓存但不确定是否过期时发请求给服务器校验。Cache-Control与Expires的区别、no-cache与no-store的区别、ETag的意义这些都好理解关键是记住优先级Cache-Control的优先级高于ExpiresETag的优先级高于Last-Modified。HTTPS建立过程建议简化成三步记忆收尾分三步证书验证阶段、密钥协商阶段、加密通信阶段。证书验证阶段是服务器返回CA签名的证书客户端验证证书链的可信性密钥协商阶段是客户端使用服务器的公钥加密预主密钥服务器用自己的私钥解密得到预主密钥然后双方用预主密钥推导出会话密钥之后通信就用对称加密了。这个题的关键得分点是能够解释清楚非对称加密只用于密钥交换实际通讯用对称加密的原因。6.2 JS异步事件循环与微任务、宏任务事件循环这一块我建议画一张图来讲按顺序说明执行顺序配合一道典型例题来验证。浏览器事件循环的核心步骤是执行同步代码将微任务队列清空取出一个宏任务执行再次将微任务队列清空渲染UI重复循环。宏任务包括setTimeout、setInterval、I/O、UI交互事件微任务包括Promise.then回调、MutationObserver、queueMicrotask。注意Promise构造函数体中的代码是同步执行的只有then和catch回调会进入微任务队列。经典例题适合用这种题来练手本质上就是记住微任务优先于宏任务每次宏任务结束后都会清空微任务队列整个流程就清楚了。6.3 React与Vuediff算法、响应式原理、生命周期React的diff算法核心是两棵树同级比较不跨层级比较通过key来复用节点。需要考虑的是当节点类型不同时直接销毁重建当节点类型相同时更新属性并递归比较子节点key值变化会导致组件被销毁重建而不是复用。这些只要理解原理就能答出来。如果被问到React 18的diff有没有变化可以提一下并发模式下渲染被拆分成多个任务diff过程可以被高优先级任务打断但整体策略没有本质改变。Vue 3的diff算法比Vue 2多了静态标记和动态节点追踪。Vue 3在编译阶段会标记节点是否包含动态绑定diff时只处理动态节点性能提升明显。Vue 3对多子节点的diff也用了最长递增子序列算法来做复用优化这个点比较进阶但说出来会很加分。Vue的响应式原理按我在第三部分说过的逻辑回答即可。生命周期这里React主要记useEffect和useLayoutEffect的执行时机区别useEffect在渲染完成后异步执行useLayoutEffect在DOM变更后同步执行后者适合读取DOM布局前的数据。Vue 3的setup是组合式API的入口替代了Vue 2的beforeCreate和createdonMounted对应mountedonUnmounted对应beforeUnmount和unmounted这类对应关系面试前最好记牢。7. 踩坑记录与备战建议写到这里把自己在面试过程中踩过的一些坑和切身体会总结一下供后来人参考。第一个坑是只看面经不写代码。我在第一次面字节前刷了大量的面经和博客感觉什么都见过但一到手写题环节就手生了Promise.all写了好几分钟还调试了半天。后来我给自己规定了一个原则凡是面经里出现的手写题必须自己在编辑器里完整实现一遍不能只看别人的答案。第二个坑是不重视算法直接把前端当纯业务开发准备。现在大厂前端面试基本都要考编程题难度在LeetCode中等偏上可能会涉及二叉树遍历、动态规划、回溯等。而且现在语言不限可以用JavaScript或者TypeScript写。建议至少提前三个月开始刷题每天一题保持手感。字节最看重算法和数据结构这个没捷径刷题量就是底气。第三个坑是项目讲得太平淡数据不够量化。我自己就吃过这个亏在美团复面的时候面试官问我项目上线后性能提升了多少我只能说感觉快了很多拿不出具体数字。从那以后我特别注意积累项目的性能指标优化了什么就记录优化前后的数据对比面试时拿出来非常加分。第四个坑是反问环节没有准备。面试官在最后都会问“你有什么想问我的”如果你只说“没有”等于白白浪费一个展示自己的机会。我当时准备了一组反问模板比如“想了解下团队目前的技术栈和未来发展方向”“这个岗位主要做什么业务团队的迭代节奏是怎样的”“团队对前端工程化有什么规划”。问这些问题既显示你对岗位有真实兴趣也能帮你判断这个团队是否适合自己。关于报名时机我的建议是金三银四依然是社招的黄金窗口岗位多、HC充足简历通过率相对高。但现在的节奏也变快了全年都会有岗位放出不要死等到招聘季再投。关于简历我强烈建议针对不同公司调整简历侧重点。投字节就把算法和React深度写在前面投阿里就把业务架构和项目收益放在显眼位置。不要一封简历投遍所有公司很多大厂用系统筛选关键词简历和岗位匹配度直接影响能否进入面试。关于谈薪HR面时被问到期望薪资不要直接给一个数字而是给一个范围并且说明这个range是根据面试情况和个人技能评估来的。如果HR压价可以拿出竞品offer或者说明自己的项目经验对齐了市场上什么水平态度要专业而坚定。我自己的经验是千万不要在HR面时说“钱不是最重要的我更看重平台和学习机会”这话听着很傻反而会让HR觉得你对自己的价值没有信心。最后说一点心态层面的东西。面试本质上是一个匹配过程不完全是能力考试所以被挂并不代表你不行很多时候只是岗位匹配度的问题。我第一轮面字节时算法题没写出来直接被刷当时还挺受打击的后来跟一个在字节的朋友聊才知道那个岗位其实更偏向招数据结构背景的人不是针对我自己的能力有问题。面试失败很正常重要的是能从中吸取经验下一次面得更从容。这篇面经写到这里我能分享的核心内容基本都覆盖了。如果你正在准备大厂前端面试记得不要只背题目答案多花时间把这些技术点真正理解透亲手写一遍实现。面试最终考察的是你独立思考和技术深度的能力面经只是帮你划重点的工具不是考试答案。祝大家都能拿到心仪的offer。
返回列表