前端/移动开发面试题更新 2026-08-05

请解释一下 fetch API 的工作机制,并分析其优势与局限性。

前端/移动开发风险判断技术原理方案权衡JavaScript

考察说明

考查对 fetch 核心特性的掌握及其在实际应用中的权衡。

回答思路

  1. 【回答框架 1】fetch 是基于 Promise 的现代浏览器原生网络请求接口,替代了传统的 XMLHttpRequest,提供更简洁的链式调用和流式处理能力。
  2. 【回答框架 2】优势包括:语法简洁、返回 Promise、支持 async/await;默认不携带 cookies(需显式设置 credentials);支持请求和响应流,便于处理大文件;模块化设计,易于扩展。
  3. 【回答框架 3】不足包括:不自动处理 HTTP 错误状态,例如 404 或 500 都会 resolve,需要手动检查 response.ok;不支持请求取消(需借助 AbortController);在旧浏览器中兼容性差;无法上传进度监控,适用于现代开发但需考虑兼容层。
  4. 【关键点 1】fetch 返回 Promise,但只有网络错误才 reject,HTTP 非 2xx 仍 resolve。
  5. 【关键点 2】fetch 默认不带 cookie,跨域需设置 credentials: 'include'。
  6. 【关键点 3】取消请求可使用 AbortController 配合 signal。
  7. 【易错点 1】不要忽略 response.ok 检查,否则会静默处理失败响应。
  8. 【易错点 2】在 Node.js 或旧环境使用 fetch 需注意兼容性,可能需引入 polyfill。
  9. 【易错点 3】上传进度暂不支持,需自行实现或使用 XMLHttpRequest。