内存泄漏
1.什么是内存泄漏?
当程序对一段内存失去控制。也就说当我们不再使用的堆内存本应该需要释放,而通过垃圾回收机制对这段内存无法清除释放而造成内存浪费,从而导致运行缓慢。出现这种行为我们就叫内存泄漏。
2.导致内存泄漏的几种场景。
1)全局变量(不需要时应该置为空)
2)不正确使用的闭包 返回的闭包函数被接收为一个变量会导致内存泄漏
3)循环引用 两个或者多个对象之间相互引用。
4)未清除的定时器
5)dom操作获取元素时,处理完毕后未及时释放dom
二。闭包
1.一个函数内嵌套另外一个函数,内嵌函数里面引用了外层函数的变量,那么这样就会形成一个闭包。作用:延长变量的声明周期。实现变量私有化(就是可以实现全局变量私有化,去让指定的外部可以读取内部的变量)
2.闭包本身不会造成内存泄漏,只有不正确的使用才会造成。
3.闭包的使用场景
1.实现变量的私有化
2.防抖与节流
3.缓存
浏览器的 resize、scroll、keypress、mousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能
防抖场景:搜索输入框 计算窗口的大小 表单提交
节流场景:
滚动加载 搜索提示功能

浙公网安备 33010602011771号