字节暑期前端一面整理笔记(三十八)
1. 为什么学 Vue
答案
Promise 题建议从“状态、API、使用方式”三层回答。
- Promise 有
pending、fulfilled、rejected三种状态,一旦落定不可逆。 - 常用 API 有
then、catch、finally、all、race、allSettled、any。 async/await本质上是 Promise 的语法糖,更适合线性异步流程。- 多个互不依赖请求不应该顺序
await,而应该并发执行,比如用Promise.all。
2. 项目中 AI 使用情况
答案
项目中用 AI 一般可以分成两类:
- 产品能力层,比如对话、问答、生成、检索增强。
- 研发协作层,比如生成样板代码、测试和文档整理。
面试里最好结合自己项目,讲清楚 AI 在哪一层发挥作用。
3. Promise 常用的 API 有哪些,有什么区别
答案
常用 Promise API 包括:
then/catch/finallyallraceallSettledany
区别重点在于并发任务的成功失败策略不同,比如 all 要全部成功,allSettled 会收集全部结果。
4. Promise 状态含义,怎么流转的
答案
Promise 有三种状态:pending、fulfilled、rejected。
- 初始是
pending。 - 成功后变成
fulfilled。 - 失败后变成
rejected。 - 状态一旦改变就不可逆。
5. 链式调用原理,then 不同情况下的返回值
答案
Promise 题建议从“状态、API、使用方式”三层回答。
- Promise 有
pending、fulfilled、rejected三种状态,一旦落定不可逆。 - 常用 API 有
then、catch、finally、all、race、allSettled、any。 async/await本质上是 Promise 的语法糖,更适合线性异步流程。- 多个互不依赖请求不应该顺序
await,而应该并发执行,比如用Promise.all。
6. 讲讲 async await,和 Promise 关系是什么,有什么差别
答案
Promise 题建议从“状态、API、使用方式”三层回答。
- Promise 有
pending、fulfilled、rejected三种状态,一旦落定不可逆。 - 常用 API 有
then、catch、finally、all、race、allSettled、any。 async/await本质上是 Promise 的语法糖,更适合线性异步流程。- 多个互不依赖请求不应该顺序
await,而应该并发执行,比如用Promise.all。
7. 写代码的时候怎么判断要用 async await 还是 Promise
答案
Promise 题建议从“状态、API、使用方式”三层回答。
- Promise 有
pending、fulfilled、rejected三种状态,一旦落定不可逆。 - 常用 API 有
then、catch、finally、all、race、allSettled、any。 async/await本质上是 Promise 的语法糖,更适合线性异步流程。- 多个互不依赖请求不应该顺序
await,而应该并发执行,比如用Promise.all。
8. 三个互不依赖的请求,用 async await 和用 Promise 的区别
答案
Promise 题建议从“状态、API、使用方式”三层回答。
- Promise 有
pending、fulfilled、rejected三种状态,一旦落定不可逆。 - 常用 API 有
then、catch、finally、all、race、allSettled、any。 async/await本质上是 Promise 的语法糖,更适合线性异步流程。- 多个互不依赖请求不应该顺序
await,而应该并发执行,比如用Promise.all。
9. 介绍项目难点
答案
项目题建议按“背景、目标、职责、难点、结果”来回答。
- 先说项目是做什么的,面向谁,解决什么问题。
- 再说页面结构和核心模块,比如会话区、输入区、历史记录、设置区、文件区等。
- 说明自己负责的部分,不要泛泛说“都做了”。
- 最后讲 1 到 2 个真正的难点,比如流式渲染、状态管理、性能优化、上传链路、权限模型,并补充最终效果。
10. agent 有哪些范式,差别,应用场景
答案
AI 相关题最好回答成“工具边界 + 落地方式”。
- AI 适合做样板代码、重构建议、测试用例、文档整理和方案对比。
- 真正落地时要给它足够上下文,比如代码规范、目录结构、接口文档、历史实现和约束规则。
- Skills / MCP / Agent 可以理解为不同层级的能力扩展:Skills 偏可复用能力包,MCP 偏工具和上下文接入协议,Agent 偏任务编排和执行过程。
- AI 不能代替工程判断,核心链路仍然要靠人 review 和兜底。
11. 如果有需求用 AI coding 如何落地
答案
AI 相关题最好回答成“工具边界 + 落地方式”。
- AI 适合做样板代码、重构建议、测试用例、文档整理和方案对比。
- 真正落地时要给它足够上下文,比如代码规范、目录结构、接口文档、历史实现和约束规则。
- Skills / MCP / Agent 可以理解为不同层级的能力扩展:Skills 偏可复用能力包,MCP 偏工具和上下文接入协议,Agent 偏任务编排和执行过程。
- AI 不能代替工程判断,核心链路仍然要靠人 review 和兜底。
12. 了解限速工程吗
答案
如果这里说的是接口或任务限速,本质是控制资源使用,防止系统被瞬时流量或高频任务打爆。
- 常见思路有固定窗口、滑动窗口、令牌桶、漏桶。
- 前端场景里也会做点击限流、请求并发数限制、上传速率控制。
- 回答时最好说明:限速不是单点技巧,而是稳定性治理的一部分。
13. 学习技术的方式
答案
我一般会按“官方文档 -> 最小 demo -> 项目实践 -> 复盘沉淀”的顺序学习。
- 先看官方文档和权威资料,建立正确认知。
- 再做一个最小可运行 demo,确认自己真会用。
- 再放进真实项目,看它在工程里有没有边界问题。
- 最后把结论沉淀成笔记或模板,方便后续复用。
14. 同步异步输出
答案
事件循环的主线是:执行一轮宏任务,然后清空微任务队列,必要时进行渲染,再进入下一轮。
- 常见宏任务:
setTimeout、setInterval、I/O、UI 事件。 - 常见微任务:
Promise.then、queueMicrotask、MutationObserver。 - 所以输出顺序题一般先看同步代码,再看微任务,最后看下一轮宏任务。
15. 括号匹配 + 子串提取
答案
这题标准解法是栈。
- 遍历字符串,左括号入栈。
- 遇到右括号时,检查栈顶是否是对应的左括号。
- 不匹配就直接返回 false;最后栈为空才说明完全匹配。