内存泄露
内存泄漏是指任何对象不再需要之后仍然存在(分配给应用的内存不能被重新分配,即使内存已经不再使用)
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量,如果一个对象的引用数量为0(没有被引用),或者该对象的唯一引用是循环的,那么该对象的内存即可回收。
造成内存泄露的情况
-
setTimeout
的第一个参数使用字符串而非函数的话,会引发内存泄露
-
闭包
内部方法保持对外部方法的引用,即使返回了内部方法,依旧可以访问外部方法中定义的变量
-
控制台日志
-
循环引用(两个对象彼此引用且彼此保留)
-
DOM插入顺序