大厂前端面试真题(三)
- 2026-09-16 15:28:03
大厂前端面试真题(三)某大厂一面,竟然都是关于AI的,看来已经成为趋势。 核心回答: 根据日常使用的说明即可,如:目前的标配是 “Trae + 豆包” 或 “Cursor + Claude Code”。但我不是把 AI 当成聊天机器人,而是把它作为集成开发环境(IDE)的智能上下文层。 深度展开: 在实际开发中,我更看重的是 “意图的颗粒度”。我不会让 AI 直接去写一个功能,而是利用大模型先分析需求,告诉AI主体的方向。比如在开发一个复杂的列表过滤功能时,我会先定义好数据流向,让 AI 负责生成样式和基础逻辑,我则负责处理那些复杂的业务逻辑和状态同步。我把 AI 当成一个能读懂我项目上下文的“高级结对编程伙伴”。 引导方向: 你还可以往 “AI提问方式”“skills技能”等 方向引,聊聊你是如何通过这些让AI生成的代码质量更加好 。 核心回答: 了解。这其实是 AI 时代提高代码产出准确率的工程化手段。 深度展开: * SDD(Software Design Document,即软件设计文档):我会先让 AI 辅助生成设计文档,包括模块职责、数据流向图和状态机转换。在代码动笔前,先对齐设计,这能规避掉 80% 的返工。 * Spec Coding:这是一种“规格驱动”的做法。我会先写好 代码规范 或 技术要求,然后把这些“规格限制”喂给 AI。这相当于给了 AI 一个硬性约束,让它在这个框架内填写代码。这比直接让它写功能要稳得多。 引导方向: 可以引申到 “测试驱动开发(TDD)” 在 AI 时代的进化,聊聊如何利用 AI 快速生成覆盖边缘情况的单测用例。 核心回答: README 是写给人看的,侧重“怎么用”,介绍项目是什么、如何快速启动、如何部署; AGENTS.md 是写给 AI 编辑器看的,侧重“怎么写”, AGENTS.md 的核心目标是:让AI理解项目的上下文、约束、架构和操作规范,从而生成更准确、更符合项目风格的代码,避免产生“幻觉”或破坏现有结构。 深度展开: 在 AGENTS.md 里,我会定义这个项目的技术要求。比如: * 项目架构与目录结构:哪些逻辑必须放在 services,哪些必须放在 hooks。 * 编码规范与风格:AI需要遵循特定的代码风格,而不是默认的通用风格。 * 技术栈与依赖:明确告知AI当前项目使用的特定库,防止AI建议使用项目未集成的库。。 * 关键约定与业务规则:AI需要知道的隐性规则或业务逻辑。 * 常用命令与工作流:帮助AI在执行操作(如修复错误、添加功能)时知道该运行什么命令。 核心回答: 靠 Prompt 叮嘱是“软约束”,必须配合工程化“硬约束”。 深度展开: 除了在 .cursorrules 里写死规则外,我更看重 “示例驱动(Few-shot)”。我会把项目里写得最规范的一个组件作为示例文件,要求 AI 严格模仿。更重要的是,我会集成 Git Hooks,在 AI 提交代码前强制跑一遍自定义的 AST 静态扫描。如果 AI 生成的代码违反了命名规范或钩子调用顺序,直接在提交阶段拦截。 引导方向: 可以转向 “工程质量红线” 的话题,谈谈在引入 AI 后,团队的代码审计(CR)流程发生了哪些改变。 核心回答: RAG(检索增强生成)解决了模型知识滞后和私有数据不可见的问题。 深度展开: 在我的项目中,RAG 主要是为了处理私有技术栈的咨询。因为大模型没见过我们内部封装的框架和业务规范,直接问它会瞎编。 * 存什么:我会把代码库的 index.d.ts、业务流程图(Markdown 格式)、以及 API 文档切片后转成 Vector(向量) 存入数据库。 * 核心逻辑:当用户提问时,先去库里召回最相似的 3-5 个技术片段,拼接到 Prompt 里发给模型。 引导方向: 可以引申到 “向量检索的准确率优化”,比如如何做文本切片(Chunking)以及多路召回策略。 核心回答: SSE(Server-Sent Events)是基于 HTTP 的轻量级单向流式传输协议。 深度展开: * 为什么用:AI 吐字是一个一个出来的,如果等全部生成完再返回,**首屏时间(TTFT)**会非常糟糕。SSE 相比 WebSocket 更轻量,不需要处理复杂的握手,且天然支持 HTTP 缓存和断线重连。 * 怎么连:前端使用 fetch 配合 ReadableStream 或者专门的 EventSource API。通过设置 Accept: text/event-stream 保持连接,服务端持续推送 data: 格式的数据块。 引导方向: 可以聊聊 “打字机效果”的渲染优化,以及如何处理 SSE 连接在移动端或者弱网环境下的异常中断。 核心回答: 核心在于 防抖(Debounce)+ 细粒度上下文采集。 深度展开: 它本质上是一个低延迟的流式接口。 * 触发机制:监听编辑器的输入,只有当用户停顿(比如 300ms)且光标处于特定语法位置时才触发请求。 * 上下文构造:AI 不仅看当前这一行,还需要获取光标前后的 AST(抽象语法树)片段。会把当前文件的 Imports 和相邻文件的函数定义打包发给后端。 * 渲染:利用编辑器(如 Monaco 或 VS Code 扩展)的 Inline Completion 接口,以灰色虚影展示,不阻塞正常打字。 引导方向: 可以谈谈 “端侧小模型(On-device LLM)” 在本地补全场景的应用前景。 核心回答: 我认为体力活占比 80% 交给 AI,核心决策 20% 留给人。 深度展开: 以前我可能在写各种数据映射和 UI 细节,现在我会把 AI 提拔为“全职外包经理”。 * 我会利用 AI 快速生成单元测试和 E2E 测试,这是以前最耗时且没人愿意干的。 * 我会利用 AI 进行 “多方案性能对比”。比如在 React 和 Vue 的选型上,或者在不同的状态管理方案上,让它给出优劣势分析并生成 Demo。 * 我会把更多的精力放在业务逻辑的抽象上,而不是具体的语法实现。 引导方向: 可以聊聊 “人机协作下的工程提效比”,如何衡量引入 AI 后真实的开发周期缩短了多少。 核心回答: 不能直接丢给 AI,要走 “解析 -> 拆解 -> 编排 -> 验证” 的闭环流程。 深度展开: * 需求共识:先把 PRD 给 AI,让它找出其中的逻辑矛盾或缺失的边界情况。 * 原子化任务:让 AI 将需求拆解成互不干扰的 Git Branch 任务。 * 并行生成:分别开启不同的对话上下文,处理 UI、逻辑 Hook 和 API 对接。 * 一致性检查:这是最关键的。我会让 AI 编写一个集成测试,来验证这几个新功能合在一起后,会不会对旧逻辑产生破坏。 引导方向: 可以引申到 “复杂系统下的依赖管理”,聊聊如何防止 AI 生成的代码导致系统过度耦合。 追问的应对技巧: 如果面试官继续深挖,不要怕。只要你坚持一个原则:“我是决策者,AI 是执行者”,所有的追问都可以引回到“你是如何通过人的判断力来兜底质量”这个点上。
1. 怎么用 AI Coding 的?用的什么工具?
2. 了解 SDD、Spec Coding 吗?
3. AGENTS.md 里应该写什么?和 README 的区别?
4. 如何让 AI 遵守项目规范?
5. 介绍一下项目,为什么用 RAG,RAG 存些什么?
6. 介绍一下 SSE,为什么用 SSE,SSE 怎么连接的?
7. 前端 AI 实时补全怎么做的?
8. 简历上的项目,现在让你做的话 AI 占比会有多少?你会怎么利用 AI?
9. 如果产品经理给你多个需求,你会怎么让 AI 去完成?
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。