js内存管理与泄露的问题解析
程序员文章站
2022-05-17 23:54:31
定义:程序不再需要的内存由由于某种原因无法被回收至内存池。
产生的原因:内存是否仍在使用无法精确判定。
常见内存泄漏:
1.未用var声明直接使用的全局变量、错误使用this(未将this绑定给任何...
定义:程序不再需要的内存由由于某种原因无法被回收至内存池。
产生的原因:内存是否仍在使用无法精确判定。
常见内存泄漏:
1.未用var声明直接使用的全局变量、错误使用this(未将this绑定给任何对象导致this指向window)
解决办法:开头声明use strict
2.未关闭的计时器和函数回调timer和callback,如setinterval引用不再需要的节点或数据导致依赖无法回收(不很理解)
解决办法:removeeventlistener(及时移除)
3.闭包,一个作用域被创建为闭包,那么它的父作用域将被共享。(完全不明白)
4.dom,html网页中的元素被移除,但js中reng仍有引用其的dom操作,会导致该元素仍保存在内存中
仍有疑问,待解决