前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库JavaScript · 函数与作用域面试题
面试知识索引 · 分类、标签与搜索

JavaScript · 函数与作用域面试题,39 道完整答案

JavaScript · 函数与作用域面试题第 1 页,显示第 1–39 题,共找到 39 道完整解析,可继续按分类、标签与关键词缩小范围。

39筛选结果
52技术分类
178检索标签
1索引分页
按分类建立知识面,再用标签和搜索定位问题

每页只渲染 50 道题。分类与标签分页可抓取,自由搜索结果不会制造无限 SEO 页面。

快速定位

分类、标签与关键词搜索

清除全部筛选
题库检索
技术分类52 个
全部分类5000JavaScript285AI Agent511浏览器301React281AI 开发262CSS240Node.js217TypeScript206Vue180前端工程化138React Native135
查看全部 52 个分类
操作系统135数据库134Docker95计算机网络94API 设计90Kubernetes90HTML89Redis89全栈开发88分布式系统88系统设计86HTTP85Next.js60Angular58Linux53Nuxt51PostgreSQL46可观测性46设计模式46小程序45身份与权限45无障碍44MongoDB43PWA43Web 安全43Git42前端测试42前端性能41WebAssembly40测试40AI 工程37SvelteKit37Go35前端数据管理30React Router29AI 全栈28Svelte27算法12Java10数据结构5前端手写题3
JavaScript 标签22 个
全部标签函数与作用域39值与类型50异步编程48数据处理45模块与语言机制40数组与集合38对象与原型35异步与 Promise34性能优化7并发编程5构建工具5流处理4缓存4表单2事件循环1
查看其余 7 个标签
作用域与函数1容器化1异步与浏览器1手写与交互性能1测试1相等比较1算法1
当前页01 / 1

正在显示第 1–39 题

JavaScript39
第 1 页

本页面试问题

按稳定语义路径排序

  1. 0001
    JavaScript函数与作用域

    在严格模式下为什么不能访问 arguments.callee?还有别的替代方案?

    围绕“在严格模式下为什么不能访问 arguments.callee?还有别的替代方案”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明让递归具名与性能原因,并给出命名函数表达式或默认参数替代。

    核心关键词arguments.callee 严格模式禁用 替代方案
    #函数与作用域#性能优化
  2. 0002
    JavaScript函数与作用域

    如何将函数内的 arguments 对象转换为真正的数组?各方法有何不同?

    讲解 arguments 转数组的三种方法及差异:slice.call 兼容性最好、Array.from 语义清晰、展开运算符最简洁,并说明箭头函数无 arguments、剩余参数可替代。

    核心关键词arguments 转数组的方法对比
    #函数与作用域
  3. 0003
    JavaScript函数与作用域

    JavaScript 中 arguments 对象与函数参数(parameters)有何区别?

    本文解释 arguments 与命名函数参数的根本不同:arguments 保存全部实参、是类数组但不继承 Array 方法,以及实参与形参在普通、严格和默认参数下的同步规则,并给出判断边界。

    核心关键词arguments 与形参(parameters)的区别
    #函数与作用域
  4. 0004
    JavaScript函数与作用域

    箭头函数为什么没有自己的 arguments 对象?如何获取所在外层函数的 arguments?

    本题解释箭头函数为何无自身 arguments,基于词法作用域机制;说明可通过外层作用域引用取得外层函数的 arguments,并推荐剩余参数作为更清晰的替代方案,同时指出全局作用域下 arguments 不存在的边界。

    核心关键词箭头函数没有 arguments 获取外层 arguments
    #函数与作用域
  5. 0005
    JavaScript函数与作用域

    箭头函数中的 this 是如何决定的?为什么会词法绑定?

    本文解释箭头函数 this 的词法绑定机制:没有自身 this、继承外层函数、call/apply/bind 无效,并给出场景与边界。

    核心关键词箭头函数 this 词法绑定原理
    #函数与作用域
  6. 0006
    JavaScript函数与作用域

    异步生成器(async generator)与普通生成器有何不同?

    围绕“异步生成器(async generator)与普通生成器有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 next() 返回 Promise,可 await 异步操作。

    核心关键词异步生成器与普通生成器区别
    #函数与作用域#异步编程
  7. 0007
    JavaScript函数与作用域

    Function.prototype.bind 与 call/apply 的区别是什么?bind 返回的新函数有哪些特性?

    讲解 Function.prototype.bind 与 call/apply 的本质差异:bind 创建永久绑定 this 的新函数并支持预置参数,call/apply 为单次调用指定 this。结合 setTimeout、构造函数等场景说明边界。

    核心关键词bind 与 call apply 区别
    #函数与作用域
  8. 0008
    JavaScript函数与作用域

    JavaScript 函数参数是按值传递还是按引用传递?对象作为参数时表现如何?

    围绕“JavaScript 函数参数是按值传递还是按引用传递?对象作为参数时表现如何”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释按值传递但引用类型传的是引用副本,修改属性会影响原对象,而重新赋值不影响。

    核心关键词JavaScript 参数按值传递还是按引用传递
    #函数与作用域
  9. 0009
    JavaScript函数与作用域

    将对象方法作为回调函数传入 setTimeout 时,为什么 this 会丢失?如何解决?

    围绕“将对象方法作为回调函数传入 setTimeout 时,为什么 this 会丢失?如何解决”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释引用传递时 this 变为全局,并给出 bind 或箭头函数解决方案。

    核心关键词setTimeout 回调 this 丢失 解决方法
    #函数与作用域
  10. 0010
    JavaScript函数与作用域

    为什么用 var 声明的循环变量在异步回调中会得到最终值?如何修复?

    围绕“为什么用 var 声明的循环变量在异步回调中会得到最终值?如何修复”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 var 函数作用域共享,以及用 let 或 IIFE 创建每层作用域。

    核心关键词var 循环变量闭包异步回调 修复
    #函数与作用域#异步编程
  11. 0011
    JavaScript函数与作用域

    闭包是如何导致内存泄漏的?如何避免?

    围绕“闭包是如何导致内存泄漏的?如何避免”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明闭包长存引用导致被引变量无法回收,并提供改进如及时置 null。

    核心关键词闭包导致内存泄漏 如何避免
    #函数与作用域
  12. 0012
    JavaScript函数与作用域

    用闭包实现柯里化(currying)的基本原理是什么?给出简单实现。

    围绕“用闭包实现柯里化(currying)的基本原理是什么?给出简单实现”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需利用闭包收集参数、返回新函数,直到参数足够。

    核心关键词柯里化 currying 闭包实现原理
    #函数与作用域
  13. 0013
    JavaScript函数与作用域

    JavaScript 函数默认参数的求值时机是什么?能否引用前面的参数?

    本题考查 JavaScript 默认参数的求值时机:每次调用时才计算、从左到右初始化、可引用前面参数,但无法访问函数体内部变量,并解释参数作用域与暂时性死区的关系。

    核心关键词默认参数求值时机 能否引用前面参数
    #函数与作用域
  14. 0014
    JavaScript函数与作用域

    函数声明与函数表达式在作用域和提升上有何区别?

    围绕“函数声明与函数表达式在作用域和提升上有何区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明声明整体提升、表达式仅变量提升,以及命名函数表达式的名称作用域。

    核心关键词函数声明与函数表达式区别 提升
    #函数与作用域
  15. 0015
    JavaScript函数与作用域

    所有函数都有 prototype 属性吗?箭头函数为什么没有?

    围绕“所有函数都有 prototype 属性吗?箭头函数为什么没有”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明普通函数有 prototype,箭头函数和异步生成器没有等,不可用 new。

    核心关键词函数 prototype 属性 箭头函数为何没有
    #函数与作用域#异步编程
  16. 0016
    JavaScript函数与作用域

    JavaScript 生成器函数(generator)是如何工作的?yield 与 next 的关系?

    围绕“JavaScript 生成器函数(generator)是如何工作的?yield 与 next 的关系”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须描述生成器函数返回可迭代迭代器、yield 暂停恢复、next 返回数据结构。

    核心关键词generator 生成器原理 yield 与 next
    #函数与作用域
  17. 0017
    JavaScript函数与作用域

    生成器产生的对象与普通可迭代对象有何异同?

    围绕“生成器产生的对象与普通可迭代对象有何异同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明生成器对象本身即迭代器、实现 next/return/throw。

    核心关键词生成器对象与迭代器协议异同
    #函数与作用域
  18. 0018
    JavaScript函数与作用域

    生成器函数能通过 new 调用吗?为什么?new.target 在其中是什么?

    围绕“生成器函数能通过 new 调用吗?为什么?new.target 在其中是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明生成器函数不是构造函数,new 会报错,并提及不能绑定 this 等。

    核心关键词生成器函数能否用 new 调用
    #函数与作用域
  19. 0019
    JavaScript函数与作用域

    如何从外部停止一个生成器或向其中抛出异常?

    围绕“如何从外部停止一个生成器或向其中抛出异常”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释调用 generator.return() 和 generator.throw() 的行为与区别。

    核心关键词外部停止生成器 throw return
    #函数与作用域
  20. 0020
    JavaScript函数与作用域

    在生成器中,yield 与 return 有何本质区别?且 return 后还能继续 next 吗?

    围绕“在生成器中,yield 与 return 有何本质区别?且 return 后还能继续 next 吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 yield 产生值并保持状态,return 结束生成器,后续 next 为 done: true。

    核心关键词生成器 yield 与 return 区别
    #函数与作用域
  21. 0021
    JavaScript函数与作用域

    函数内变量提升(hoisting)对 var 和 let/const 有何区别?能否在声明前访问?

    围绕“函数内变量提升(hoisting)对 var 和 let/const 有何区别?能否在声明前访问”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 var 提升为 undefined,let 存在暂时性死区。

    核心关键词var let 变量提升 暂时性死区
    #函数与作用域
  22. 0022
    JavaScript函数与作用域

    什么是立即执行函数表达式(IIFE)?它的主要用途有哪些?

    围绕“什么是立即执行函数表达式(IIFE)?它的主要用途有哪些”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释语法与创建新作用域、隔离变量、配合闭包保存状态等用途。

    核心关键词IIFE 立即执行函数 用途
    #函数与作用域
  23. 0023
    JavaScript函数与作用域

    使用箭头函数写 IIFE 与普通函数 IIFE 有何本质区别?

    围绕“使用箭头函数写 IIFE 与普通函数 IIFE 有何本质区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖主要区别在于 this 的词法绑定,以及 arguments、new.target 等差异。

    核心关键词箭头函数 IIFE 与普通函数区别
    #函数与作用域
  24. 0024
    JavaScript函数与作用域

    函数 length 属性代表什么?默认参数和剩余参数如何影响它?

    围绕“函数 length 属性代表什么?默认参数和剩余参数如何影响它”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 length 是形参个数但不包括默认参数/剩余参数之前的?实际规则。

    核心关键词函数 length 属性 默认参数 剩余参数影响
    #函数与作用域
  25. 0025
    JavaScript函数与作用域

    JavaScript 词法作用域是如何工作的?作用域链如何形成?

    围绕“JavaScript 词法作用域是如何工作的?作用域链如何形成”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释作用域在代码书写时决定,并递归关联外层函数。

    核心关键词JavaScript 词法作用域与作用域链
    #函数与作用域
  26. 0026
    JavaScript函数与作用域

    函数对象的 name 属性是如何推断的?箭头函数与匿名函数呢?

    围绕“函数对象的 name 属性是如何推断的?箭头函数与匿名函数呢”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明变量赋值、对象属性、默认参数等推断规则,以及箭头函数。

    核心关键词函数 name 属性推断规则
    #函数与作用域
  27. 0027
    JavaScript函数与作用域

    使用 new 调用函数时,函数内部会发生哪些步骤?this 如何绑定?

    本文解释了 new 调用函数时内部发生的四步流程:创建空对象、原型关联、绑定 this、处理返回值。同时讨论 new.target 的检测、显式返回对象的覆盖情况,以及类与构造函数的差异。

    核心关键词new 调用函数内部步骤 this 绑定
    #函数与作用域
  28. 0028
    JavaScript函数与作用域

    new.target 在函数中表示什么?箭头函数中如何影响?

    围绕“new.target 在函数中表示什么?箭头函数中如何影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释它是构造函数是否为 new 的标志,在箭头函数中继承外层。

    核心关键词new.target 含义与箭头函数
    #函数与作用域
  29. 0029
    JavaScript函数与作用域

    对象方法简写(method shorthand)与属性值为普通函数有何区别?

    围绕“对象方法简写(method shorthand)与属性值为普通函数有何区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释简写方法使用 function 关键字,但不绑定自己的 arguments 或 super?严格来说简写方法不可作为构造函数,且。

    核心关键词对象方法简写与普通函数属性区别
    #函数与作用域
  30. 0030
    JavaScript函数与作用域

    可选链(?.) 如何用于函数调用?它对 this 绑定有何影响?

    围绕“可选链(?.) 如何用于函数调用?它对 this 绑定有何影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明如果调用不存在不会报错,且 this 绑定保持原引用。

    核心关键词可选链函数调用 this 绑定影响
    #函数与作用域
  31. 0031
    JavaScript函数与作用域

    如何利用闭包实现 JavaScript 的私有变量?有哪些模式?

    围绕“如何利用闭包实现 JavaScript 的私有变量?有哪些模式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需展示通过在函数内定义变量并返回暴露接口的方式。

    核心关键词闭包实现私有变量 模块模式
    #函数与作用域
  32. 0032
    JavaScript函数与作用域

    JavaScript 剩余参数(rest parameters)与 arguments 对象相比有哪些优势?

    对比剩余参数与 arguments 的核心差异:真数组 Vs 类数组、收集范围、同步机制、默认参数关系,并指出工程中的选择依据。

    核心关键词rest 剩余参数与 arguments 区别
    #函数与作用域
  33. 0033
    JavaScript函数与作用域

    函数调用中副作用指什么?纯函数有什么特点?

    围绕“函数调用中副作用指什么?纯函数有什么特点”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需明确副作用定义与纯函数可预测性。

    核心关键词纯函数与副作用 特点
    #函数与作用域
  34. 0034
    JavaScript函数与作用域

    函数默认参数与块级作用域中的暂时性死区有什么关系?

    围绕“函数默认参数与块级作用域中的暂时性死区有什么关系”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明默认参数有自己的作用域,未初始化前访问外层同名变量可能导致 TDZ 错误。

    核心关键词函数默认参数与暂时性死区
    #函数与作用域
  35. 0035
    JavaScript函数与作用域

    JavaScript 中 this 的绑定规则有哪些?优先级如何?

    本文解析 this 四种绑定规则及优先级,强调调用点决定 this,不扩展到箭头函数。内容含作用域机制、典型场景、边界条件,并提供判断方法。

    核心关键词this 绑定规则与优先级
    #函数与作用域
  36. 0036
    JavaScript函数与作用域

    在 class 中的方法 this 绑定与普通对象方法有何不同?为何通常要 bind?

    围绕“在 class 中的方法 this 绑定与普通对象方法有何不同?为何通常要 bind”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明类方法默认不绑定,析构时 this 丢失,以及通过构造函数绑定或箭头字段初始化。

    核心关键词class 方法 this 绑定与 bind
    #函数与作用域
  37. 0037
    JavaScript函数与作用域

    在 DOM 事件处理函数中,this 指向什么?与 addEventListener 关联?

    解释 addEventListener 回调中 this 的指向规则:普通函数 this 为 currentTarget 元素,箭头函数继承外层 this,并提供判断方法和适用场景。

    核心关键词事件处理函数 this 指向 addEventListener
    #函数与作用域
  38. 0038
    JavaScript函数与作用域

    var、let 和 const 在函数作用域与块级作用域上有何不同?

    围绕“var、let 和 const 在函数作用域与块级作用域上有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需比较函数作用域与块级作用域、变量提升与暂时性死区,直接与词法绑定相关。

    核心关键词var let const 作用域与提升区别
    #函数与作用域
  39. 0039
    JavaScript函数与作用域

    yield* 表达式用于什么?如何在生成器中委托给另一个可迭代对象?

    围绕“yield* 表达式用于什么?如何在生成器中委托给另一个可迭代对象”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明委托迭代,最终值由 return 传递。

    核心关键词yield* 委托可迭代对象
    #函数与作用域
上一页
1
下一页
前端进阶之旅本地 Markdown 维护 · 服务端分页 · 完整内容对用户与搜索引擎一致