- 0
- 0
- 约3.69千字
- 约 7页
- 2026-07-27 发布于河北
- 举报
JS闭包终极面试题(含超详细接地气答案)
一、基础概念必考题(入门必问)
1、什么是闭包?用自己的话通俗解释,不要官方定义
参考答案:
简单说:内层函数用到了外层函数的变量,并且内层函数被外层return出去了,这就形成了闭包。
正常情况下,一个函数执行完,里面的局部变量会被销毁、内存释放。但闭包的作用就是:让外层函数的局部变量,在函数执行结束后,依然可以被保留、被外部访问。
核心三要素:
函数嵌套
内层函数引用外层函数的局部变量/参数
外层函数将内层函数返回出去(让内层函数在外部执行)
2、闭包的优缺点是什么?面试高频背诵点
参考答案:
优点:
实现私有变量:变量藏在函数内部,全局访问不到,避免全局变量污染
保留变量状态:可以保存函数上一次的执行结果,实现数据缓存、累加器等效果
模块化开发:早期JS没有module,靠闭包实现模块隔离
缺点:
容易造成内存泄漏:闭包会一直保留外层变量的引用,导致变量无法被GC回收
占用内存:滥用闭包会让页面内存占用变高,造成页面卡顿
3、闭包中变量的作用域和生命周期是什么?
参考答案:
普通局部变量:函数执行完毕→执行栈销毁→变量直接回收。
闭包变量:只要外部还存在对内层函数的引用,外层的变量就会一直保存在堆内存中,不会被垃圾回收。
简单理解:引用不丢,变量不销毁。
二、原理辨析高频题(面试官重点考察理解)
4、全局变量和闭包私有变量的
原创力文档

文档评论(0)