JS闭包终极面试题(含超详细接地气答案).docxVIP

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

JS闭包终极面试题(含超详细接地气答案).docx

JS闭包终极面试题(含超详细接地气答案)

一、基础概念必考题(入门必问)

1、什么是闭包?用自己的话通俗解释,不要官方定义

参考答案:

简单说:内层函数用到了外层函数的变量,并且内层函数被外层return出去了,这就形成了闭包。

正常情况下,一个函数执行完,里面的局部变量会被销毁、内存释放。但闭包的作用就是:让外层函数的局部变量,在函数执行结束后,依然可以被保留、被外部访问。

核心三要素:

函数嵌套

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

外层函数将内层函数返回出去(让内层函数在外部执行)

2、闭包的优缺点是什么?面试高频背诵点

参考答案:

优点:

实现私有变量:变量藏在函数内部,全局访问不到,避免全局变量污染

保留变量状态:可以保存函数上一次的执行结果,实现数据缓存、累加器等效果

模块化开发:早期JS没有module,靠闭包实现模块隔离

缺点:

容易造成内存泄漏:闭包会一直保留外层变量的引用,导致变量无法被GC回收

占用内存:滥用闭包会让页面内存占用变高,造成页面卡顿

3、闭包中变量的作用域和生命周期是什么?

参考答案:

普通局部变量:函数执行完毕→执行栈销毁→变量直接回收。

闭包变量:只要外部还存在对内层函数的引用,外层的变量就会一直保存在堆内存中,不会被垃圾回收。

简单理解:引用不丢,变量不销毁。

二、原理辨析高频题(面试官重点考察理解)

4、全局变量和闭包私有变量的

文档评论(0)

1亿VIP精品文档

相关文档