写出js内存泄漏的问题?
回答一:
(1)IE7/8 DOM对象或者Active对象循环引用导致内存泄漏
a、多个对象循环引用
b、循环的DOM泄漏
(2)基础的DOM泄漏
当原有的DOM被移除时,子节点引用没有被移除则无法回收
(3)timer定时器泄漏
这个时候你无法回收buggy object,解决办法,先停止timer然后再回收
回答二:
内存泄露指任何对象在您不再拥有或需要它之后仍然存在
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为0 (没有其他对象引用过该对象),或对该对象的唯一引用是循环的,那么该对象的内存即可回收
setTimeout的第一个参数使用字符串而非函数的话,会引发内存泄漏
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)也会引发内存泄漏问题