字节跳动面试题 · 编码实现 · JavaScript
字节跳动相关面试题,按最终去重题目聚合。
共 3252 道真题 · 当前筛选命中 26 道 · 更新 2026-08-05
筛选题目已选:编码实现 · JavaScript
考察点
技术栈
第 1 题实现一个Promise.all 考察对Promise并发控制、错误处理和返回值语义的理解与编码能力第 2 题若需使用POST请求接收SSE流式数据,EventSource默认只支持GET,有何替代方案? 考察对SSE局限性的认识与fetch流式读取能力第 3 题请手写实现一个 new 操作符,并说明其执行过程。 考察对JavaScript原型链、构造函数和this绑定的理解及编码实现能力第 4 题请实现一个带超时控制的 Promise,要求指定时间内未完成则 reject。 考察 Promise 原理、异步控制与超时边界处理能力第 5 题请手写实现一个节流函数,并说明与防抖的区别。 考察节流实现、与防抖的区分及适用场景第 6 题前端JavaScript如何通过EventSource接收并处理SSE流式数据? 考察EventSource API的使用与事件处理第 7 题请手写实现一个防抖函数,并说明其适用场景。 考察防抖原理、实现细节及场景判断能力第 8 题请手写一个 JS 闭包,并说明其典型应用场景与可能的内存风险。 考察闭包的定义、写法、常见应用及内存管理意识第 9 题讲讲数组有哪些常见的API,都有什么用,哪些会修改原数组哪些不会修改原数组? 考察对数组常用方法及其可变性(修改原数组与否)的理解第 10 题请手写实现一个深拷贝函数,要求能处理循环引用和常见数据类型。 考察深拷贝实现、递归边界和循环引用处理能力第 11 题请实现一个防抖函数,并说明适用场景及与节流的区别。 考察防抖实现、作用时机及与节流的对比理解第 12 题给定一个包含不同 tag 类型(如数字、字符串、中文)的对象数组,如何实现一个函数提取所有 tag 值并返回为数组? 考察数组处理、类型理解和编码实现能力第 13 题请手写一个 JSONP 的实现,并说明其原理和适用场景。 考察对跨域原理、动态脚本加载和回调管理的掌握第 14 题如何将一个URL字符串解析为对象,并提取其中的协议、主机名、端口、路径和查询参数? 考察URL解析的方法、边界情况处理及数据提取能力第 15 题请实现一个深拷贝函数,并考虑处理循环引用、Set、Map、Date 等特殊数据结构。 考察对深拷贝实现细节的理解、边界处理能力和编码能力第 16 题请实现一个名为 LazyMan 的链式调用类,支持按调用顺序执行任务(包括 sleep 延迟),例如 LazyMan('Tom').sleep(2).eat('apple') 应先输出 'Hi, Tom',等待 2 秒后输出 'Eat apple'。要求体现异步编程和链式调用的设计。 考察异步任务队列、链式调用和定时器控制能力,以及解决经典面试题 LazyMan 的实现思路第 17 题?.的作用是什么?请说明可选链操作符的用途。 考察对 JavaScript 可选链操作符的理解及其使用场景第 18 题请实现一个工具函数,接收一个 Promise,如果它在 1 秒内未完成则抛出异常,否则返回其正常结果。 考察异步编程、超时控制与错误处理能力第 19 题实现一个 parseQuery 函数,输入一个 query 字符串(例如:?name=Alice&age=20&city=Beijing),返回一个对象 {name: 'Alice', age: '20', city: 'Beijing'}。如果 query 参数中出现重复的 key,value 变成数组。 考察字符串解析、边界处理和编码解码能力第 20 题请用 JavaScript 实现二叉树的编码,并说明如何进行遍历。 考察二叉树的基本数据结构实现与遍历算法掌握