ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Uber 前端面试要准备什么:高频 JavaScript 编码与 UI 组件题目梳理

Uber 前端面试要准备什么:高频 JavaScript 编码与 UI 组件题目梳理 Uber 前端面试要准备什么高频 JavaScript 编码与 UI 组件题目梳理【免费下载链接】front-end-interview-handbookFront End interview preparation materials for busy engineers (updated for 2026)项目地址: https://gitcode.com/GitHub_Trending/fr/front-end-interview-handbook如果你正在准备 Uber 的前端工程师面试需要先把「准备什么」落到具体题目上那么 front-end-interview-handbook 仓库里有一条可以直接走通的路线Uber 前端面试题页面汇集了社区反馈的 Uber 高频题仓库中的 JavaScript 编码题指南 和 UI 组件题指南 则给出了这两类题的通用训练要求和检查清单。本文把它们组合成一条准备路径先确认考察范围再逐题手写 JavaScript 编码题然后按清单完成一道 UI 组件题最后用文档给出的时间与测试标准自查。确认 Uber 考察哪些题型把准备重点放对位置仓库的 面试格式介绍页 用一张表标注了各公司前端技术轮考察格式✅ 会考、❌ 不考、⚠️ 无数据Uber 一行是JavaScript 编码 ✅、UI 编码 ✅Quiz ⚠️、算法 ⚠️、系统设计 ⚠️。也就是说有文档依据的确定项就是 JavaScript 编码和 UI 组件编码两类本文只围绕这两类展开。Uber 题目页自己也写明「Not much is known about Ubers front end interview process」题目清单来自社区完成的面试反馈因此要连同以下背景一起看一位 SDE II Web 候选人的反馈中流程为 5 轮DSALeetCode 风格、JS 实现、Web FundamentalsHTML、CSS、JS、APIs、Internet、Frontend System Design、Culture Fit、Hiring Manager。2026 年 4 月 28 日的一条反馈Uber SDE-2 前端首轮技术面「纯 JavaScript」约 45 分钟题目是带并发控制的异步处理队列作者称在时间内完成了全部 follow-up。2025 年 5 月的反馈里面试官表示 Uber 正尝试让前端岗位逐渐弱化 DSA、保持前端导向同批反馈还提示HR 说会考 DSA 但实际可能问 React 组件——题目以面试官实际为准。JavaScript 编码题需要手写实现的四个方向Uber 题目页列出的 JavaScript 编码题共四类这是本文的主清单API 端点限流器在 API endpoint 上实现一个限流attribute/decoration/annotation 形式用滚动窗口rolling window把请求限制在每分钟 N 次。带并发控制的异步处理队列实现一个 async process queue 并做并发数控制follow-up 要求接受一个错误回调处理器处理某个异步任务失败的情况。这是反馈中提到过的实际电话面题目。批量发送工具写一个 JS 工具按批发送数据并带超时——批次达到大小立即发送并重启计时器如果计时器先触发而批次未满就把已有内容发送并重新启动计时器。这是 BPS 轮实际出现过的题目。Map Async Limit题目页标注为 Uber SDE-2 反复出现的问题并给出了 GreatFrontEnd 上的免费练习题map-async-limit。仓库的 JavaScript 编码题指南 对这类题目有明确的训练标准逐条对应到上面的清单这类题是「前端版 LeetCode」强调实用场景而不是复杂算法绝大多数被考的工具函数在 JavaScript 语言本身或 Lodash/Underscore 里都存在最著名的是debounce和throttle。文档同时提醒Lodash 的实现过度工程化复用大量抽象函数、兼容老浏览器的奇怪用例面试中不要求你处理这些边界情况不要照抄 Lodash 的实现复杂度。「准备 JavaScript 编码题的最好方式是亲自实现并为自己写的函数写测试用例」——这是文档给出的核心方法也是本文验证环节的依据。虽然重点不在算法仍要注意数据结构选型和时间复杂度能用哈希表做到 O(n) 的不要写 O(n²) 的实现。时间预期基础题大约 10–15 分钟完成进阶题给更高级候选人约 25–30 分钟完成或至少得到一个最小可用解。基本题要主动控制在建议时间内因为通常还要再答一道编码题。文档给出的三条通用提示尽量写纯函数不依赖函数外状态、不产生副作用写递归函数时主动问最大栈深限制嵌套数据结构可能自引用先确认是否存在环通常答案是「No」。对照来看清单里的限流器和异步队列题都涉及异步时序与边界处理练习时按上面的纯函数、复杂度要求来写并按 10–15 分钟基础或 25–30 分钟进阶给自己计时。UI 组件题进度条加并发限流是主要考察对象Uber 题目页列出的 UI 编码题中细节最完整、值得完整做一遍的是这道创建一个按钮点击后向页面添加一个进度条进度条在给定的时间内填满约 3 到 5 秒。如果第一部分做完接下来会要求你限制同时运行的进度条数量。例如上限是 3 个进度条、用户点了 4 次按钮第 4 个进度条要等第 1 个完成后才开始。页面还提到另外两项一个 Overlapping circles重叠圆圈应用以及近期有反馈出现 React 技术栈的 UI 组件题招聘方常提示准备 DSA但面试官可能转向 React。UI 组件题指南 先说明了面试中可能遇到的编码环境四种形式在线编辑器带预览常见平台 CodePen、CodeSandbox、在线编辑器无预览如 CoderPad、自带环境 BYOE本地开发或用 CodePen/CodeSandbox可用create-react-app、vue-cli这类脚手架工具直接开始写码避免在面试里花时间在脚手架上、白板无预览、无自动补全、无文档可查。练习时按这三种带预览/不带预览的环境各走一遍能覆盖你实际会遇到的形式。完成题目本身后文档要求你在动手前或完成后过一遍它的检查清单按顺序做判断前端最佳实践避免写全局变量用 IIFE 包裹代码、不污染全局作用域问自己页面上出现该组件的多个实例时代码是否仍然成立、各实例是否互相独立是否提供了方便的 API 用可配置选项来实例化组件。性能与扩展性网络响应慢怎么办文档提示用 Chrome DevTools 的 Network 面板模拟慢网络字符串过长、图片过大能否容纳任意数量的子项项过多时怎么办提示设最大高度或分页、没有项时展示空状态而不是什么都不显示元素过多时性能如何提示虚拟列表。网络请求是否存在竞态新请求发出时上一个请求还没返回请求超时或报错如何恢复能否用缓存、懒加载、预取/预加载优化。用户体验组件是否移动端友好是否方便 i18n、是否考虑 RTL 语言是否存在可访问性问题——文档点名了最基本的几项文字大小、颜色对比度、可聚焦元素、Tab 焦点顺序、aria-label并说明如果对自己的 a11y 水平没把握至少应承认这个知识缺口并把它纳入回答。安全渲染用户输入时防 XSS——几乎永远不该用.innerHTML或 jQuery 的$.html()用.textContent和$.text()确实要渲染原始 HTML 时必须先转义出现在 URL 里的用户输入要先编码否则可能被注入额外查询参数。收尾文档建议结尾主动说明「如果时间更多、写成需要维护的生产代码你会怎么做不同」例如用 Sass 替代 CSS、用 React 替代 jQuery、用 Babel 编译兼容老浏览器、加键盘快捷键等。对进度条这道题限流 follow-up 正好落在「并发控制」上练习时要把文档给的例子上限 3 个、第 4 次点击排队等第 1 个完成当作验收标准点 4 次按钮时页面上同时运行的进度条不能超过 3 个第 4 个必须等第 1 个结束才启动。如何验证准备到位文档给出的验证手段和判断标准如下自写测试用例JavaScript 编码题指南的方法就是「亲自实现并为自己写的函数写测试用例」。清单里的每个工具限流器、异步队列、批量发送都应有自己的用例覆盖主路径和 follow-up错误回调、并发上限、定时器与批次大小的先后关系。自动化测试题集JavaScript 指南和 UI 指南都提到GreatFrontEnd 上的题目每题配有自动化测试用例和由前 FAANG 高级工程师撰写的官方解法其中 map-async-limit、progress-bars 等在 Uber 题目页被标注为 Free可以直接用它来核对你的实现。时间预期按文档的划分基础题 10–15 分钟、进阶题 25–30 分钟得到最小可用解。反馈里提到的 45 分钟电话面「完成所有部分」是一个真实案例只能作为参考量级不是文档给出的硬性标准。范围与限制Uber 题目页开头的定性是「关于 Uber 前端面试流程公开信息很少」四类 JS 题和 UI 题均来自社区反馈页面中的 Source 链接指向候选人的面经帖题目以面试官实际提问为准HR 口径与面试官实际出题不一致是文档记录的已知现象。本文覆盖的是 JavaScript 编码与 UI 组件两类。Uber 反馈中提到的系统设计Bengaluru SDE-2 循环中常问 Google Calendar、行为面不在本文范围内系统设计可继续看仓库的 前端系统设计文档。文档明确不要求你在面试中处理 Lodash 级别的边界情况超出题面边界的复杂度不必主动堆砌遇到不确定边界如对象是否含环按文档建议向面试官确认。【免费下载链接】front-end-interview-handbookFront End interview preparation materials for busy engineers (updated for 2026)项目地址: https://gitcode.com/GitHub_Trending/fr/front-end-interview-handbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进