前端开发工程师面试题及答题要点
前端面试通常 2-4 轮:一面考 JS/CSS 基础和手写代码,二面深挖项目和技术方案,三面偏架构思维与协作。最容易挂的不是不会答,而是基础题答得含糊、项目细节被追问三句就露怯。下面按环节拆解高频题和答法。
专业基础
讲一下事件循环,宏任务和微任务的区别是什么?
考察点:考察 JS 异步执行机制的底层理解,是区分背题和真懂的试金石。
别踩:只背「微任务先执行」却不解释为什么,追问一句就答不上来。
说说闭包是什么,你在项目里哪里用过?
考察点:闭包概念人人会背,他想确认你是否真的在工程里用过。
别踩:只讲概念不举项目实例,会被判定为「背八股、没实战」。
CSS 里 BFC 是什么?能解决哪些布局问题?
考察点:考察对盒模型和渲染规则的掌握,判断 CSS 功底是否扎实。
别踩:背触发条件却说不清「它到底解决了什么问题」,显得没用过。
从输入 URL 到页面渲染,中间发生了什么?
考察点:经典综合题,串联网络、浏览器渲染全链路,看知识面广度。
别踩:每个环节都提一句但全是名词罗列,没有一处讲深,显得浅。
框架与工程化
你用的框架里,响应式原理是怎么实现的?
考察点:考察是否理解框架核心机制,而不是只会调 API。
别踩:答成「Vue2 用 Object.defineProperty、Vue3 用 Proxy」一句话就停,没有下文。
组件之间怎么通信?父子、兄弟、跨层级分别说。
考察点:考察日常开发的基本功,这是天天要用的东西。
别踩:一口气列七八种方式不谈取舍,说明实际项目里没思考过。
讲讲你项目里的构建和部署流程。
考察点:考察工程化素养,判断你是「只会写页面」还是懂完整交付链路。
别踩:把团队流程说成自己独立搭建的,追问细节立刻穿帮。
首屏加载慢,你会怎么排查和优化?
考察点:高频实战题,考察性能优化是否有方法论,而不是背清单。
别踩:直接背一堆优化手段,却说不出怎么定位是哪个环节慢。
项目经历深挖
挑一个你最有技术含量的项目,讲讲你负责的部分。
考察点:验证简历真实性,看你的技术决策能力而不是执行能力。
别踩:全程说「我们团队」,听不出你个人做了什么,会被认为参与度低。
这个项目里你遇到的最难的问题是什么?怎么解决的?
考察点:考察问题定位能力和技术深度上限,这是二面决定性的题。
别踩:问题太水(如改个样式 bug)或排查过程一句带过,直接跳到结果。
如果让你重做这个项目,你会改哪些设计?
考察点:考察反思能力和技术视野,看你是执行者还是有架构思维。
别踩:说「没什么可改的」显得没有成长,或全盘否定显得当时水平差。
行为面试与情景应变
和后端对接口联调,对方接口一直有问题还甩锅给你,怎么办?
考察点:考察跨端协作和冲突处理,前端天天和后端打交道。
别踩:答成「忍让」或「怼回去」,两个极端都说明协作经验不足。
产品上线前一天临时要改需求,你怎么处理?
考察点:考察优先级判断和抗压,看你是情绪化还是有流程感。
别踩:只表达不满「这不合理」,却给不出任何可执行的应对方案。
说一次你线上出事故的经历。
考察点:考察责任感和复盘能力,有没有事故不重要,怎么处理才重要。
别踩:把责任全推给测试或后端,或事故影响说得含糊其辞。
为什么从前一家公司离职?
考察点:考察稳定性和动机,判断你入职后会不会很快再走。
别踩:吐槽前公司钱少事多、领导奇葩,HR 会默认你以后也会这么说他们。
手写代码与反问环节
现场手写一个防抖函数。
考察点:手写题是前端一面的标配,防抖节流出现率极高。
别踩:写完不口述验证,或 this/参数处理漏掉——面试官就在等这个。
手写一个深拷贝,要考虑循环引用。
考察点:考察递归、边界处理和 Map 的运用,看代码严谨性。
别踩:只写两层递归就交卷,循环引用一追问就卡住。
你有什么想问我们的吗?
考察点:考察你对这个机会的认真程度,也是你最后的加分窗口。
别踩:说「没什么想问的」,直接传递「我对这个岗位无所谓」的信号。
面试准备清单
| 什么时候 | 要做什么 |
|---|---|
| 面试前 3 天 | 把简历上每个项目按「背景—我的角色—技术决策—量化结果」重新过一遍,每个项目准备一个最难的 bug 故事,能扛住三层追问。 |
| 面试前 3 天 | 过一遍 JS 核心(事件循环、闭包、原型链、Promise)和框架响应式原理,每题先自己口述一遍再对答案,练表达而不是默背。 |
| 面试前 1 天 | 手写练习防抖、节流、深拷贝、数组去重、Promise.all 这五个高频题,每道限时 5 分钟,写完口述验证逻辑。 |
| 面试前 1 天 | 查目标公司的技术栈和主要产品,准备 2-3 个反问问题;如果是远程或视频面,测试设备和网络。 |
| 面试当天 | 提前 10 分钟到场或上线;把简历打印两份带纸质版;手写环节主动要纸笔,写之前先复述需求确认理解。 |
| 面试当天 | 答不上来的题直接说「这块我了解不深,但我的思路是……」,展示思考过程比硬编答案得分高得多。 |