- 内存溢出
一种程序运行出现的错误
当程序运行需要的内存超过了剩余的内存时, 就出抛出内存溢出的错误 - 内存泄露
占用的内存没有及时释放
内存泄露积累多了就容易导致内存溢出
常见的内存泄露:
意外的全局变量
没有及时清理的计时器或回调函数
闭包
例:
// 1. 内存溢出
var obj = {}
for (var i = 0; i < 100000000000; i++) {
obj[i] = new Array(10000000000)
}
console.log('------')
// 2. 内存泄露
// 意外的全局变量
function fn () {
a = [] //不小心没有var定义
}
fn()
// 没有及时清理的计时器
setInterval(function () {
console.log('----')
}, 1000)