文章目录

字节暑期前端一面整理笔记(三十八)

1. 为什么学 Vue

答案

Promise 题建议从“状态、API、使用方式”三层回答。

  1. Promise 有 pendingfulfilledrejected 三种状态,一旦落定不可逆。
  2. 常用 API 有 thencatchfinallyallraceallSettledany
  3. async/await 本质上是 Promise 的语法糖,更适合线性异步流程。
  4. 多个互不依赖请求不应该顺序 await,而应该并发执行,比如用 Promise.all

2. 项目中 AI 使用情况

答案

项目中用 AI 一般可以分成两类:

  1. 产品能力层,比如对话、问答、生成、检索增强。
  2. 研发协作层,比如生成样板代码、测试和文档整理。

面试里最好结合自己项目,讲清楚 AI 在哪一层发挥作用。


3. Promise 常用的 API 有哪些,有什么区别

答案

常用 Promise API 包括:

  1. then/catch/finally
  2. all
  3. race
  4. allSettled
  5. any

区别重点在于并发任务的成功失败策略不同,比如 all 要全部成功,allSettled 会收集全部结果。


4. Promise 状态含义,怎么流转的

答案

Promise 有三种状态:pendingfulfilledrejected

  1. 初始是 pending
  2. 成功后变成 fulfilled
  3. 失败后变成 rejected
  4. 状态一旦改变就不可逆。

5. 链式调用原理,then 不同情况下的返回值

答案

Promise 题建议从“状态、API、使用方式”三层回答。

  1. Promise 有 pendingfulfilledrejected 三种状态,一旦落定不可逆。
  2. 常用 API 有 thencatchfinallyallraceallSettledany
  3. async/await 本质上是 Promise 的语法糖,更适合线性异步流程。
  4. 多个互不依赖请求不应该顺序 await,而应该并发执行,比如用 Promise.all

6. 讲讲 async await,和 Promise 关系是什么,有什么差别

答案

Promise 题建议从“状态、API、使用方式”三层回答。

  1. Promise 有 pendingfulfilledrejected 三种状态,一旦落定不可逆。
  2. 常用 API 有 thencatchfinallyallraceallSettledany
  3. async/await 本质上是 Promise 的语法糖,更适合线性异步流程。
  4. 多个互不依赖请求不应该顺序 await,而应该并发执行,比如用 Promise.all

7. 写代码的时候怎么判断要用 async await 还是 Promise

答案

Promise 题建议从“状态、API、使用方式”三层回答。

  1. Promise 有 pendingfulfilledrejected 三种状态,一旦落定不可逆。
  2. 常用 API 有 thencatchfinallyallraceallSettledany
  3. async/await 本质上是 Promise 的语法糖,更适合线性异步流程。
  4. 多个互不依赖请求不应该顺序 await,而应该并发执行,比如用 Promise.all

8. 三个互不依赖的请求,用 async await 和用 Promise 的区别

答案

Promise 题建议从“状态、API、使用方式”三层回答。

  1. Promise 有 pendingfulfilledrejected 三种状态,一旦落定不可逆。
  2. 常用 API 有 thencatchfinallyallraceallSettledany
  3. async/await 本质上是 Promise 的语法糖,更适合线性异步流程。
  4. 多个互不依赖请求不应该顺序 await,而应该并发执行,比如用 Promise.all

9. 介绍项目难点

答案

项目题建议按“背景、目标、职责、难点、结果”来回答。

  1. 先说项目是做什么的,面向谁,解决什么问题。
  2. 再说页面结构和核心模块,比如会话区、输入区、历史记录、设置区、文件区等。
  3. 说明自己负责的部分,不要泛泛说“都做了”。
  4. 最后讲 1 到 2 个真正的难点,比如流式渲染、状态管理、性能优化、上传链路、权限模型,并补充最终效果。

10. agent 有哪些范式,差别,应用场景

答案

AI 相关题最好回答成“工具边界 + 落地方式”。

  1. AI 适合做样板代码、重构建议、测试用例、文档整理和方案对比。
  2. 真正落地时要给它足够上下文,比如代码规范、目录结构、接口文档、历史实现和约束规则。
  3. Skills / MCP / Agent 可以理解为不同层级的能力扩展:Skills 偏可复用能力包,MCP 偏工具和上下文接入协议,Agent 偏任务编排和执行过程。
  4. AI 不能代替工程判断,核心链路仍然要靠人 review 和兜底。

11. 如果有需求用 AI coding 如何落地

答案

AI 相关题最好回答成“工具边界 + 落地方式”。

  1. AI 适合做样板代码、重构建议、测试用例、文档整理和方案对比。
  2. 真正落地时要给它足够上下文,比如代码规范、目录结构、接口文档、历史实现和约束规则。
  3. Skills / MCP / Agent 可以理解为不同层级的能力扩展:Skills 偏可复用能力包,MCP 偏工具和上下文接入协议,Agent 偏任务编排和执行过程。
  4. AI 不能代替工程判断,核心链路仍然要靠人 review 和兜底。

12. 了解限速工程吗

答案

如果这里说的是接口或任务限速,本质是控制资源使用,防止系统被瞬时流量或高频任务打爆。

  1. 常见思路有固定窗口、滑动窗口、令牌桶、漏桶。
  2. 前端场景里也会做点击限流、请求并发数限制、上传速率控制。
  3. 回答时最好说明:限速不是单点技巧,而是稳定性治理的一部分。

13. 学习技术的方式

答案

我一般会按“官方文档 -> 最小 demo -> 项目实践 -> 复盘沉淀”的顺序学习。

  1. 先看官方文档和权威资料,建立正确认知。
  2. 再做一个最小可运行 demo,确认自己真会用。
  3. 再放进真实项目,看它在工程里有没有边界问题。
  4. 最后把结论沉淀成笔记或模板,方便后续复用。

14. 同步异步输出

答案

事件循环的主线是:执行一轮宏任务,然后清空微任务队列,必要时进行渲染,再进入下一轮。

  1. 常见宏任务:setTimeoutsetInterval、I/O、UI 事件。
  2. 常见微任务:Promise.thenqueueMicrotaskMutationObserver
  3. 所以输出顺序题一般先看同步代码,再看微任务,最后看下一轮宏任务。

15. 括号匹配 + 子串提取

答案

这题标准解法是栈。

  1. 遍历字符串,左括号入栈。
  2. 遇到右括号时,检查栈顶是否是对应的左括号。
  3. 不匹配就直接返回 false;最后栈为空才说明完全匹配。