作业帮面试题 · 问题拆解 · JavaScript
作业帮相关面试题,按最终去重题目聚合。
共 1635 道真题 · 当前筛选命中 17 道 · 更新 2026-08-05
筛选题目已选:问题拆解 · JavaScript
考察点
技术栈
第 1 题请介绍事件循环(Event Loop)的基本流程,并说明它对异步编程的影响。 考察对事件循环机制的理解及异步编程的应用第 2 题当服务器返回 HTML 后,其中的 script 标签会阻塞页面解析吗?如果不加 defer 属性,是否一定会阻塞? 考察对浏览器解析 HTML 时同步脚本阻塞机制的理解第 3 题请分析下面代码中 console.log 的执行顺序,并解释原因:Promise.resolve().then(()=>console.log('micro')); setTimeout(()=>console.log('macro'),0); console.log('sync'); 考察对 JavaScript 事件循环、宏任务与微任务执行顺序的理解第 4 题请解释代码中 `this` 的指向规则,并结合常见调用方式说明如何判断。 考察对 JavaScript 中 this 绑定机制的理解与判断能力第 5 题请实现一个函数,用于检测给定依赖关系中是否存在循环引用。数据格式示例:{a:{dependance:['b','c']}, b:{dependance:['d']}},其中每个键代表一个模块,dependance 数组表示其依赖的其他模块。请说明算法时间复杂度,并考虑多种边界情况。 考察图的循环检测、图遍历算法实现与复杂度分析第 6 题请实现一个函数,能够串行执行一个 Promise 数组(即前一个完成后才执行下一个),并说明其与传统并行执行的区别。 考察 Promise 串行执行的实现能力、异步流程控制与边界处理第 7 题请手写实现一个防抖函数,并说明其应用场景和注意事项。 考察对防抖概念的理解、实现能力及边界处理第 8 题在防抖函数中为什么要用 apply 绑定 this?如果不用 apply,能拿到点击事件吗? 考察this指向与事件参数的传递机制第 9 题微任务和宏任务是什么,各自包含哪些典型类型? 考察对事件循环任务调度模型的理解,以及区分常见微任务与宏任务的能力第 10 题请实现一个防抖函数,并解释其中某一关键行代码的设计理由。 考察函数式编程、定时器与闭包的实际应用与设计意图第 11 题写一个函数,实现输入的 AJAX 请求串行输出(可用递归、迭代、await 都可以)。 考察异步控制流的串行执行能力与多种实现方式第 12 题请说明 Promise、async/await 和定时器在 JavaScript 异步编程中的区别,以及它们在事件循环中的执行顺序。 考察对 JavaScript 异步机制和事件循环模型的理解第 13 题请实现一个深度拷贝函数,要求能处理各种边界情况,例如JSON对象、正则表达式、函数、日期等类型。 考察深拷贝实现的全面性、边界处理能力和对常见类型特性的理解第 14 题请手写一个防抖函数,并说明其适用场景。 考察防抖函数的实现原理、闭包应用与场景判断能力第 15 题请详细解释 JavaScript 事件循环机制及其在浏览器和 Node.js 环境中的差异。 考察对事件循环机制的理解深度及跨环境差异的掌握第 16 题请描述浏览器 DOM 事件模型,包括事件捕获、目标阶段和事件冒泡,并说明如何阻止事件冒泡和阻止默认行为。 考察对 DOM 事件传播机制及其 API 的理解第 17 题防抖节流的运用场景以及实现 考察防抖与节流的概念区分、适用场景及实现能力