字节跳动面试题 · 问题拆解 · JavaScript
字节跳动相关面试题,按最终去重题目聚合。
共 3252 道真题 · 当前筛选命中 31 道 · 更新 2026-08-05
筛选题目已选:问题拆解 · JavaScript
考察点
技术栈
第 21 题请实现一个名为 LazyMan 的链式调用类,支持按调用顺序执行任务(包括 sleep 延迟),例如 LazyMan('Tom').sleep(2).eat('apple') 应先输出 'Hi, Tom',等待 2 秒后输出 'Eat apple'。要求体现异步编程和链式调用的设计。 考察异步任务队列、链式调用和定时器控制能力,以及解决经典面试题 LazyMan 的实现思路第 22 题请分析JavaScript中同步任务与异步任务(包括宏任务和微任务)的执行顺序,并举例说明。 考察对事件循环、同步异步执行顺序及宏任务微任务机制的理解第 23 题实现一个 parseQuery 函数,输入一个 query 字符串(例如:?name=Alice&age=20&city=Beijing),返回一个对象 {name: 'Alice', age: '20', city: 'Beijing'}。如果 query 参数中出现重复的 key,value 变成数组。 考察字符串解析、边界处理和编码解码能力第 24 题请写出下面代码的输出顺序,并解释宏任务与微任务的执行机制。 考察对JavaScript事件循环、宏任务与微任务执行顺序的理解第 25 题Promise.race() 的第一个失败了怎么办,会执行第二个吗,返回结果是什么? 考察对 Promise.race 竞速语义、错误处理和返回结果的理解第 26 题请用 JavaScript 实现二叉树的编码,并说明如何进行遍历。 考察二叉树的基本数据结构实现与遍历算法掌握第 27 题async 函数在执行栈中的位置是怎么样的? 考察对 async/await 执行机制和事件循环的理解第 28 题请实现数组扁平化 flat,并说明递归和栈两种实现方式各自的优缺点。 考察递归与栈实现数组扁平化的能力及对调用栈深度和性能的理解第 29 题slice和splice的区别是什么? 考察JavaScript数组方法的基本概念、行为差异及正确使用场景第 30 题请解释 setTimeout 与 async/await 在异步代码执行顺序中的作用与区别。 考察对 JavaScript 事件循环、异步 API 与语法糖的理解第 31 题JavaScript 是单线程,为什么可以实现并发加载多个接口? 考察事件循环、异步非阻塞I/O与并发模型的理解