1.意外全局变量
function fn() {
a = 10;
}
fn();
console.log(window.a); // 10
解决方法:使用严格模式 use strict
2.计时器
setInterval("内存泄漏", 1000); // 字符串
setInterval(() => {
console.log(1)
}, 1000) // 不停止
解决方式:清理计时器
3.闭包
// 在fn创建的内部函数fn1是不会回收的,因为它被全局变量f引用, 处于一个随时被调用的状态,所以会造成内存泄漏
function fn() {
var number = 10;
function fn1() {
console.log(++a);
}
return fn1;
}
var f = fn();
f();
解决方式:执行完成后设置为null,f = null
4.console.log
console.log 对象不能被垃圾回收
5.缓存
建议所有缓存都设置好过期时间,如果缓存过多的话也会造成内存泄漏