JS闭包高频面试题+详细真实面试答案.docxVIP

  • 1
  • 0
  • 约3.28千字
  • 约 7页
  • 2026-07-27 发布于河北
  • 举报

JS闭包高频面试题+详细真实面试答案.docx

JS闭包高频面试题+详细真实面试答案

一、基础概念题(必问)

1、什么是闭包?闭包的形成条件是什么?

参考答案:

简单来说,闭包就是能够读取其他函数内部变量的函数。

JS中函数执行会形成私有作用域,正常情况下,函数执行完毕后,内部的局部变量会被垃圾回收销毁。但如果内部函数被外部引用,就会阻止变量销毁,形成闭包。

闭包三大形成条件(缺一不可):

函数嵌套(内层函数+外层函数)

内层函数引用外层函数的局部变量/参数

内层函数在外部被调用(全局作用域引用)

面试加分补充:

闭包的本质是:函数保留了对父级作用域的引用,即便父函数执行完毕,作用域也不会销毁。

2、闭包的优缺点是什么?业务中有哪些常用场景?

参考答案:

优点:

实现变量私有化,防止全局变量污染,避免变量冲突

可以让变量常驻内存,实现数据持久化

简化代码,实现柯里化、防抖节流等高阶逻辑

缺点:

变量常驻内存,不会主动销毁,容易造成内存占用过高

使用不当会引发内存泄漏(未手动释放闭包引用)

实际业务场景:

防抖、节流函数(常驻内存保存定时器状态)

模块化开发(ES5模拟私有变量)

循环绑定事件、定时器保存瞬时变量

函数柯里化、缓存结果(闭包缓存数据)

React自定义hooks、计数器状态保存

二、代码输出判断题(面试高频错题)

1、经典循环闭包陷阱题

写出以下代码的输出结果,并解释原因

PlainText

for(vari

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档