内存泄漏

1.什么是内存泄漏?

当程序对一段内存失去控制。也就说当我们不再使用的堆内存本应该需要释放,而通过垃圾回收机制对这段内存无法清除释放而造成内存浪费,从而导致运行缓慢。出现这种行为我们就叫内存泄漏。

2.导致内存泄漏的几种场景。

1)全局变量(不需要时应该置为空)

2)不正确使用的闭包  返回的闭包函数被接收为一个变量会导致内存泄漏

3)循环引用   两个或者多个对象之间相互引用。

4)未清除的定时器

5)dom操作获取元素时,处理完毕后未及时释放dom

二。闭包

1.一个函数内嵌套另外一个函数,内嵌函数里面引用了外层函数的变量,那么这样就会形成一个闭包。作用:延长变量的声明周期。实现变量私有化(就是可以实现全局变量私有化,去让指定的外部可以读取内部的变量)

2.闭包本身不会造成内存泄漏,只有不正确的使用才会造成。

3.闭包的使用场景

1.实现变量的私有化

2.防抖与节流

3.缓存

浏览器的 resize、scroll、keypress、mousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能

防抖场景:搜索输入框    计算窗口的大小    表单提交

节流场景:

滚动加载   搜索提示功能    

posted @ 2023-08-01 01:50  kyming  阅读(29)  评论(0)    收藏  举报