面试之内存泄露


周末面试过程中,面试官问什么是内存泄露而引发的一系列问题,直接懵了

一、面试官问:什么是内存泄漏?

我心想这不都倒背如流了,直接八股文

JS程序中已动态分配的内存由于某种原因未释放或无法释放而引发的各种问题称为内存泄露

二、又问:什么会引发内存泄露

这不都直接拿捏

意外的全局变量
闭包
未清除的定时器
dom清空了,还存在引用

面试官:“嗯嗯!不错!!!”

1、那你继续说说什么是意外的全局变量

我直接懵逼,最后只能尴尬的说,我没有思考过这个问题。
下面是面试完查的:

JS中对没有声明的变量会默认定义在全局变量windoow上,只有关闭窗口或者刷新页面的时候,全局变量才会被释放,如果一个没有声明的变量上保存了大量的数据,这些数据就会保存在全局变量身上,如果这些数据没有及时释放就会引起内存泄露

2、那你在说下闭包的作用吧

这个也熟

函数外部可以访问到函数内部的局部变量; 延长局部变量的生命周期

3、为什么非要访问函数内部的局部变量呢,我们就不能在全局变量多定义一个变量吗

随口说出:“哪样全局变量不就太多了吗”

4、全局变量过多会造成什么问题

我直接人傻了,被完虐。
下面还是面试完查的:

生存周期长,越多消耗内存越大
容易引发命名冲突
不利于排查错误和调试

总结

希望可以对大家有所帮助,下次被面试官虐的轻点!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值