前端AI八股文题目汇总
2026-07-30
8216 字约 28 分钟
...一、TypeScript 与类型系统(20题)
- 在定义 AI 接口返回的嵌套数据结构(如多轮对话、工具调用结果)时,如何用 TypeScript 的泛型与条件类型实现灵活的类型推导?
- 当 AI 接口返回的字段可能因模型版本不同而动态变化时,如何设计类型守卫(type guard)与类型收缩策略?
- 请用 TypeScript 实现一个"类型安全的 Prompt 模板解析器",要求支持变量插值、类型校验与默认值。
- 如何用 TypeScript 的模板字面量类型(Template Literal Types)约束 AI 返回的特定格式字符串(如日期、ID)?
- 设计一个类型系统,用于描述 AI Agent 执行过程中的状态流转(如 思考→执行→观察→完成),并实现类型安全的状态切换。
- 在联合类型(Union Types)与交叉类型(Intersection Types)中,哪种更适合定义多模态 AI 输出(文本、图像、音频)?为什么?
- 如何用 TypeScript 声明一个支持流式 Chunk 数据与错误处理的泛型接口,并兼容 SSE、WebSocket 等多种传输方式?
- 当 AI 服务返回的数据结构包含递归引用(如对话树)时,如何用 TypeScript 定义并避免循环引用导致的类型爆炸?
- 请设计一个类型系统,用于前端对 AI 模型元数据(版本、输入输出格式、最大 Token 数)的静态校验。
- 如何用 TypeScript 的
infer关键字提取 AI 流式响应中的嵌套数据字段(如choices[0].delta.content)? - 在微前端架构下,多个 AI 功能模块共享类型定义,如何用 Monorepo 或类型包(.d.ts)进行统一管理?
- 如何用 TypeScript 实现一个"类型安全的 AI 函数调用"系统,确保前端传递的参数与模型要求的 Schema 完全匹配?
- 当 AI 接口支持批量请求时,如何用 TypeScript 元组(Tuple)与映射类型(Mapped Types)定义输入输出对应关系?
- 设计一个类型系统,用于描述 RAG 检索结果中的"引用片段"及其置信度得分,并支持高亮展示。
- 如何用 TypeScript 装饰器(Decorator)为 AI 请求方法自动添加日志、性能监控与错误重试的类型标注?
- 在 AI 可视化编辑器中,如何用类型系统保证用户配置的工作流节点连接关系合法(如输入输出类型匹配)?
- 如何用 TypeScript 条件类型实现 AI 模型版本的向后兼容,确保旧版前端能安全处理新版 API 返回的数据?
- 设计一个类型系统,用于前端对 AI 生成内容的安全过滤(如敏感词、隐私信息),并在编译期进行部分校验。
- 如何用 TypeScript 的
satisfies运算符约束 AI 配置对象的结构,同时保留字面量的具体类型提示? - 在 AI 多租户系统中,如何用 TypeScript 区分不同租户的模型配置、权限与界面定制类型?
二、流式处理与实时通信(25题)
- 请设计一个支持"断线重连+消息去重"的 SSE 客户端,并处理 AI 长文本生成中的网络抖动问题。
- 如何在前端实现一个"流式 Markdown 解析器",在 AI 逐字输出过程中实时渲染标题、列表、代码块,并避免标签截断?
- 当 AI 流式返回的数据包含多个独立片段(如文本、代码、表格)时,如何设计 Chunk 合并算法以保证片段完整性?
- 请实现一个支持"优先级调度"的流式请求队列,允许用户中断低优先级生成(如翻译)以优先处理高优先级任务(如代码生成)。
- 在 React 18+ 中,如何用
useTransition与useDeferredValue优化 AI 流式输出的渲染性能,避免主线程阻塞? - 设计一个"流式数据缓存"策略,将 AI 已生成的内容分段存储于 IndexedDB,支持离线续写与历史回放。
- 如何用 Web Worker 并行处理多个 AI 流式响应(如同时生成文本与摘要),并实现跨线程状态同步?
- 当 AI 服务返回的流式数据包含自定义事件(如
[DONE]、[ERROR])时,前端如何解析并触发相应回调? - 请设计一个"流式进度估算"组件,根据已接收的 Token 数与模型速率,动态预测 AI 生成剩余时间。
- 如何实现 AI 流式输出的"语音同步朗读"(TTS),确保语音与文字逐句对应,并支持暂停、跳过?
- 在微前端场景下,多个子应用同时订阅同一个 AI 流式连接,如何设计共享连接管理以避免重复请求?
- 如何用 Service Worker 拦截 AI 流式请求,实现离线缓存、请求重试与带宽节省(如压缩 Chunk)?
- 设计一个"流式数据可视化"方案,实时展示 AI 生成过程中的 Token 分布、注意力权重或置信度变化。
- 当 AI 流式输出包含结构化数据(如 JSON、XML)时,如何在前端逐步解析并验证其完整性?
- 如何用 EventSource 的
last-event-id机制实现 AI 生成中断后的续接,确保数据不丢失? - 在低代码平台中,如何设计一个"流式 UI 生成器",根据 AI 返回的 JSON 描述实时渲染表单、图表等组件?
- 请实现一个"流式差异对比"功能,实时高亮 AI 编辑前后文本的差异(如语法修正、风格改写)。
- 如何用 WebRTC DataChannel 替代 SSE/WebSocket,实现 P2P 架构下的 AI 流式数据传输?
- 设计一个"流式内容审核"管道,在 AI 生成过程中实时调用敏感词过滤、图片鉴黄等异步服务。
- 如何在前端实现"流式翻译记忆库",将 AI 翻译的句子片段实时存储并用于后续相似句子的加速?
- 当 AI 流式输出被用户中途修改时,如何设计撤销/重做栈以保留每一步的流式状态?
- 请设计一个"流式数据分片上传"方案,将用户输入的大文件(如视频)切片后流式发送给 AI 处理。
- 如何用 TransformStream 在浏览器侧对 AI 流式输出进行实时转码(如 Base64 解码、gzip 解压)?
- 在 AI 代码生成场景中,如何实现流式输出的"实时语法检查"与错误高亮?
- 设计一个"多模型流式对比"界面,同时展示 GPT、Claude 等不同模型的生成过程,并支持并行暂停/继续。
三、前端状态管理与数据流(21题)
- 在大型 AI 应用中,如何用 Zustand 或 Redux Toolkit 管理多轮对话、生成任务、用户配置等复杂状态?
- 设计一个"状态快照"系统,支持将 AI 对话的完整状态(包括流式中间结果)序列化保存与恢复。
- 如何用 XState 或状态图(Statechart)建模 AI Agent 的完整工作流(包括工具调用、条件分支、错误处理)?
- 在微前端架构下,多个 AI 功能模块需要共享"当前模型版本"状态,如何设计跨应用状态同步方案?
- 请设计一个"乐观更新"策略,在用户发送 AI 请求后立即在 UI 显示预期结果,再根据实际流式响应逐步修正。
- 如何用
immer或immutable.js优化 AI 对话列表的不可变更新,避免深拷贝导致的性能问题? - 设计一个"状态版本控制"系统,支持 AI 对话历史的任意回退、分支创建与合并(类似 Git)。
- 在离线优先的 AI 应用中,如何用 RxJS 或
@tanstack/query管理本地缓存与网络状态的同步? - 如何用 Recoil 或 Jotai 的原子(Atom)机制实现 AI 生成参数的细粒度响应式更新(如温度、top_p)?
- 设计一个"状态持久化"方案,将 AI 应用的关键状态自动保存到 IndexedDB,并支持跨标签页同步。
- 在 AI 可视化编辑器中,如何用 Mobx 实现画布节点、连接线、属性面板的双向数据绑定?
- 如何用 Redux-Saga 或 Redux-Observable 处理 AI 请求的复杂副作用(如轮询、超时、竞态)?
- 设计一个"状态迁移"工具,当 AI 接口版本升级导致数据结构变化时,自动转换旧版持久化状态。
- 在 AI 多租户系统中,如何用上下文(Context)或依赖注入(DI)管理不同租户的独立状态实例?
- 如何用 Vue3 的 Composition API 或 React Hooks 封装可复用的 AI 状态逻辑(如
useChat、useCompletion)? - 设计一个"状态审计"系统,记录 AI 应用中的所有状态变更(谁、何时、何故),便于调试与回溯。
- 在 AI 实时协作编辑中,如何用 CRDT(无冲突复制数据类型)解决多用户同时修改 Prompt 的冲突?
- 如何用 Valtio 的代理(Proxy)机制实现 AI 配置对象的响应式监听,并自动触发相关副作用?
- 设计一个"状态压缩"算法,对 AI 对话历史进行无损压缩(如删除中间态、合并连续相似消息)。
- 在 AI 工作流引擎中,如何用 BPMN 或 Workflow 模型定义状态流转,并前端可视化执行过程?
- 如何用 SWR 或 React Query 实现 AI 模型列表、价格、可用性等数据的自动缓存与后台刷新?
四、性能优化与渲染(20题)
- 在万条级别的 AI 对话历史中,如何实现毫秒级搜索与过滤(关键词、时间范围、模型类型)?
- 请设计一个"虚拟化渲染"方案,用于超长 AI 生成内容(如数万 Token 的文档)的平滑滚动与快速定位。
- 如何用 WebGL 或 Canvas 实现 AI 生成图像的高性能实时预览(如缩放、拖拽、滤镜)?
- 在 AI 代码编辑器中,如何优化语法高亮、代码折叠、错误波浪线的渲染性能,避免输入卡顿?
- 设计一个"按需加载"策略,仅渲染 AI 对话列表中可视区域及附近的消息,其余部分保留为纯文本。
- 如何用 WASM 加速前端本地的 AI 推理(如句子嵌入、相似度计算),并实现与 JavaScript 的无缝交互?
- 在 AI 实时语音转文字场景中,如何用 Web Audio API 优化音频流处理,降低内存与 CPU 占用?
- 请设计一个"渲染优先级"调度器,确保 AI 生成中的关键 UI(如输入框、发送按钮)始终响应迅速。
- 如何用
React.memo、useMemo、useCallback避免 AI 消息列表因无关状态变更导致的全量重渲染? - 在 AI 多模态输出(文本+图像+表格)场景中,如何分阶段渲染以提升首屏速度?
- 设计一个"资源预加载"策略,在用户打开 AI 应用时提前加载模型配置、常用 Prompt 模板等静态资源。
- 如何用 Intersection Observer 实现 AI 生成图像的懒加载,并支持加载中占位与错误重试?
- 在 AI 实时视频分析场景中,如何用 WebCodecs 或 FFmpeg.wasm 解码视频流并提取关键帧送 AI 处理?
- 请设计一个"内存回收"机制,自动释放 AI 对话历史中不再使用的消息对象、缓存图像等资源。
- 如何用 Service Worker 缓存 AI 静态资源(如模型文件、WASM 模块),实现离线可用与快速启动?
- 在 AI 图表生成场景中,如何用 Web Workers 并行计算数据聚合、统计指标,避免阻塞 UI 线程?
- 如何用 React Concurrent Features(如 Suspense、
useTransition)优化 AI 生成过程中的加载状态与错误边界? - 请设计一个"Bundle 拆分"策略,将 AI 应用按功能模块(聊天、编辑、可视化)拆分为独立 Chunk,按需加载。
- 如何用 Tree Shaking 与 Code Splitting 移除未使用的 AI SDK 代码(如不同模型的适配层)?
- 在 AI 嵌入式场景(如浏览器插件)中,如何最小化运行时内存占用,避免影响宿主主页面性能?
五、前端 AI 架构设计(19题)
- 请设计一个"微前端+模块联邦"的 AI 应用架构,支持独立部署聊天、编辑、可视化等子应用。
- 如何用 Monorepo 管理 AI 前端、Node.js 中间层、共享类型定义、工具脚本的统一代码库?
- 设计一个"插件化" AI 前端框架,允许第三方开发者通过插件扩展模型接入、UI 组件、工具调用。
- 在 AI 多租户 SaaS 平台中,如何设计前端架构以支持动态主题、自定义域名、独立功能开关?
- 如何用 DDD(领域驱动设计)划分 AI 前端的核心领域(对话、模型、工具、知识库)与限界上下文?
- 设计一个"事件驱动"架构,用 EventEmitter 或 MessageChannel 解耦 AI 各个模块(输入、处理、输出)。
- 在 AI 实时协作场景中,如何用 OT(操作转换)或 CRDT 实现多用户并发编辑的冲突解决?
- 如何设计一个"配置驱动"的 AI 工作流引擎,前端通过 JSON 或 YAML 定义节点、连接线、条件分支?
- 请设计一个"前后端分离"的 AI 应用,前端直接调用多个 AI 服务商 API,后端仅做鉴权与计费代理。
- 在 AI 嵌入式场景(如 IDE 插件)中,如何设计轻量级 SDK,提供一致的 API 供宿主应用调用?
- 在 AI 联邦学习前端,如何设计安全的数据上传、模型下载、更新合并流程,并保证用户隐私?
- 设计一个"可观测性"架构,集成日志、指标、链路追踪,全面监控 AI 前端性能与异常。
- 在 AI 低代码平台中,如何设计可视化编排器的前端架构,支持拖拽、连线、属性配置、实时预览?
- 在 AI 实时视频处理场景中,如何设计前端流水线架构,串联视频采集、帧提取、AI 推理、结果渲染?
- 如何用 Serverless 思想设计 AI 前端,将部分计算(如 Prompt 渲染、结果过滤)移至边缘节点?
- 设计一个"多端统一"架构,用 Taro 或 Uni-app 实现一套代码同时运行于 Web、小程序、桌面端。
- 在 AI 大规模团队中,如何设计前端组件库、工具链、CI/CD 流水线以提升跨团队协作效率?
- 设计一个"渐进式增强"架构,基础版 AI 功能纯前端实现,高级版依赖后端服务,平滑降级。
- 如何用 Web Components 封装可复用的 AI 自定义元素(如
<ai-chat>、<ai-editor>),跨框架使用?
六、AI 特性与前端工程实践(14题)
- 在前端实现一个 Agent 循环时,如何管理工具调用的异步执行、超时处理与结果合并?
- 请设计一个前端本地的向量检索系统,用 TensorFlow.js 或 ONNX Runtime 计算句子嵌入并做相似度匹配。
- 在 AI 产品中,前端可以通过哪些技术手段(如缓存、压缩、懒加载)帮助降低 Token 成本?
- 如何建立 AI 生成内容的质量评估体系?前端可在交互层面提供哪些反馈机制(如评分、标注、修正)?
- 在处理 AI 幻觉(Hallucination)时,前端可以设计哪些实时提示与用户教育交互?
- 如何实现前端本地的敏感词过滤与内容安全审核,在发送至 AI 服务前进行初步筛查?
- 请设计一个前端实验平台,支持对 AI 模型参数(温度、top_p)、Prompt 模板、UI 布局进行 A/B 测试。
- 如何用 WebAssembly 在前端运行轻量级 AI 模型(如 TinyLLM、蒸馏模型),实现离线推理?
- 在 AI 多轮对话中,如何设计上下文窗口的管理策略(如滑动窗口、关键信息提取、自动摘要)?
- 如何实现 AI 生成结果的"一键格式化"(如 Markdown 转富文本、代码缩进、表格对齐)?
- 请设计一个"AI 辅助编程"的 IDE 插件,提供代码补全、注释生成、错误解释、重构建议等功能。
- 如何设计一个"AI 绘画"前端,支持文生图、图生图、参数调整、历史作品管理与分享?
- 如何用 WebGPU 加速前端 AI 推理,实现实时风格迁移、超分辨率、背景虚化等计算密集型任务?
- 在 AI 内容审核场景中,如何实现图片、视频、文本的多模态联合审核与结果可视化?
七、AI 工程化与前端工具链(18题)
- 如何设计一个 AI 前端项目的标准化目录结构,兼顾业务功能、共享组件、工具函数与类型定义?
- 请设计一套 AI 前端代码规范(ESLint、Prettier、Commitlint),并集成 Git Hooks 自动检查。
- 如何用 Husky、
lint-staged、Commitizen 打造 AI 项目的自动化提交与代码质量流水线? - 设计一个 AI 前端项目的 CI/CD 流水线,包括代码检查、单元测试、E2E 测试、构建优化、自动部署。
- 如何用 Docker 容器化 AI 前端应用,实现开发、测试、生产环境的一致性?
- 请设计一个 AI 前端性能监控方案,收集 FP、FCP、LCP、CLS 等核心指标,并关联 AI 特定指标(如 Token/s)。
- 如何用 Sentry 或 Bugsnag 监控 AI 前端异常,自动捕获错误上下文(用户输入、模型参数、网络状态)?
- 设计一个 AI 前端日志系统,结构化记录用户操作、AI 请求、响应时间、错误信息,便于回溯分析。
- 如何用 Webpack 或 Vite 优化 AI 前端构建性能,实现代码分割、Tree Shaking、预加载、持久缓存?
- 请设计一个 AI 前端依赖管理策略,定期更新模型 SDK、工具库,并评估兼容性与性能影响。
- 设计一个 AI 前端错误上报与告警系统,根据错误频率、影响用户数自动触发 Slack、邮件通知。
- 如何用 GraphQL Code Generator 自动生成 AI 接口的 TypeScript 类型,保持前后端类型同步?
- 请设计一个 AI 前端配置管理系统,支持环境变量、功能开关、模型端点、Prompt 模板的动态配置。
- 如何用 Turborepo 或 Nx 管理 AI Monorepo 中多个包的构建缓存、任务调度与依赖图优化?
- 设计一个 AI 前端文档站点,集成 API 文档、使用示例、最佳实践、故障排查与版本历史。
- 如何用 Changesets 或 Lerna 管理 AI 项目版本号、生成变更日志、自动发布 NPM 包?
- 如何用 Bundle Analyzer 分析 AI 前端打包体积,识别并优化过大的依赖(如模型 SDK、可视化库)?
- 设计一个 AI 前端灰度发布方案,支持按用户 ID、设备类型、地理位置逐步放量新功能。
八、大模型前端集成(7题)
- 如何用 OpenAI Function Calling 或 Tools 在前端实现 AI 工具调用(如计算器、搜索、数据库查询)?
- 请设计一个模型性能监控面板,实时展示各模型的响应时间、成功率、Token 消耗与成本。
- 如何用 LangChain.js 在前端构建 AI 链(Chain),串联多个 Prompt、模型调用、工具执行?
- 如何实现模型调用的"请求合并",将多个用户的相似问题批量发送,提升吞吐并降低成本?
- 如何用 WebSocket 实现双向流式通信,支持 AI 模型主动推送进度更新、中断信号、工具调用请求?
- 如何用 Server-Sent Events 实现模型输出的"进度条"与"部分结果预览"?
- 如何用 Web Workers 并行调用多个模型,实现"模型投票"或"结果融合"?
如果您觉得这篇文章有帮助,请点个赞吧~
相关文章
更多文章 →八股文2026-08-27
定时器按顺序播放多个音频,切后台音频会乱
本身不会补触发,但 它会被系统级冻结 ——iOS Safari 后台完全停止计时,切回前台后 只补执行一次 (不是不补,而是"缺失的中间状态补不上")。间隔短的不会出大问题, 间隔长的会出现"音频流被压缩" ——切回来后本该播 5 分钟的间隙,实际只过了 3 分钟,结果整段对不上。 核心原则 :定时器只能用来"提醒一次", 真正决定"该不该播"的是绝对时间戳 。 setTimeout 在后台会发生什么(按平台) | 平台 | 后台行为...
面试
八股文2026-08-27
线上项目白屏的原因
白屏的本质是 渲染管线某一环断了 ——可能是资源、JS、接口、路由、样式、兼容性任一环节出问题。排查按"控制台 → 网络 → DOM → 环境"四步定位。 本质(前端类比) 把网页想成一栋楼: 白屏 ≠ 一定是同一种原因——这是面试想听的层次。 六大类原因(按出现频率) | 类别 | 典型表现 | 真实案例 | | : | : | : | | ① 资源加载失败 | DOM 是空的 | 入口 JS 404、CDN 挂了、CSS 阻塞 |...
面试
八股文2026-08-27
背景图就是 1MB 大图,怎么优化
1MB 大背景图优化分 三步 :压缩体积(10 30x)、按需加载(按设备/视口/网速)、渲染期优化(GPU 合成)。背景图跟 不同——它是 CSS,不走浏览器的原生懒加载机制,得手动处理。 背景图 vs 的关键区别(先讲清楚这个) 这是面试官想听的"针对性认知"——背景图不是普通图片,不能套通用方案。 三步优化(按优先级) 第 1 步:压缩体积(最重要,立竿见影) 1MB 的来源一般是这几种 ,对应解决方案: | 原始问题 | 体积来...
面试
八股文2026-08-27
项目里很多图片和视频,怎么优化
图片视频优化分 四层 :网络层(CDN/格式)、加载层(懒加载/预加载)、渲染层(解码/缓存)、业务层(按需/降级)。面试要把这四层都讲到位才算有体系。 四层优化模型 第 1 层:网络层(省钱、省时间) 核心目标:让资源体积小、让用户拿到资源快 | 手段 | 作用 | 关键点 | | : | : | : | | 图片格式 | WebP/AVIF 比 JPEG 小 25 50% | 兼容 fallback | | 视频格式 | H.265...
面试
八股文2026-08-20
Embedding 向量模型:从语义表示到相似度计算
前言 大模型「读懂」文字靠的是 token,但 token 之间只有离散的编号关系,模型并不知道「苹果」和「李子」在语义上很近。要让程序能「理解」两段文字的相似程度,必须先把文本映射成一个 高维向量 ,再用几何方法比较。这一步就是 Embedding。 本篇基于我本地 今天的真实代码,从语义表示讲到余弦相似度,并复盘几个踩过的真实坑。 一、为什么需要 Embedding 传统关键词检索是「字面匹配」: Embedding 做的是「语义匹...
面试
八股文2026-08-19
前端面试100题
前端面试 100 题 适用方向:中高级前端 / React / Vue / Next.js / Nuxt / TypeScript / 工程化 / 实时通信 / Electron / Node.js / AI 应用前端 使用方式:优先掌握“标准回答”,再练“面试官追问”,最后把“结合你的简历怎么答”组织成自己的项目故事。 说明 “结合你的简历怎么答”只使用你简历中已经出现的项目与技术事实。 “标准回答 / 追问”属于通用前端知识总结,用...
面试
评论
请登录后发表评论
去登录