这篇文章给大家带来的是关于js内存泄漏的含义? js内存泄漏的介绍有一定的参考价值,有需要的朋友可以参考一下,希望对你有帮助。
内存泄漏意味着在浏览器进程结束之前,一块分配的内存既不能使用也不能回收。
垃圾收集器定期扫描对象并计算引用每个对象的其他对象的数量。如果一个对象的引用次数为0(没有其他对象引用过该对象),或者该对象的唯一引用是循环引用,则可以回收该对象的内存。
如果setTimeout的第一个参数使用字符串而不是函数,会造成内存泄漏。
关闭、控制台日志、循环(当两个对象相互引用并相互保留时,会发生循环)
释放内存的方法:赋值为“null”

导致内存泄漏的情况:
1、意外全局变量导致的内存泄漏
原因:全局变量不会被回收。
解决方法:使用严格模式来避免
2、关闭引起的内存泄漏
原因:闭包可以维护函数中的局部变量,使其不能被释放。
解决方法:外部定义事件处理函数,联系闭包,或者删除定义事件处理函数的外部函数中对DOM的引用。
3、 DOM 元素引用未清理
原因:虽然已经在别处删除了,但对象中仍然存在DOM引用。
解决方法:手动删除

4、被遗忘的计时器或回调
原因:定时器中有DOM引用。即使删除了DOM,定时器还在,所以DOM还在内存中。
解决方法:手动删除定时器和DOM
5、子元素引用导致内存泄漏
原因:p中的ul li得到这个p时,会间接引用某个li,那么由于p间接引用了li,即使li被清空了,它仍然在内存中,只要li不在删除,其父元素都不会被删除。
解决:手动删除爱空间
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-380800-1.html
爱玩微博~~~~