内存溢出

当程序需要的内存超过了剩余的内存时,就会抛出内存溢出错误

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var arrObj={};
    for (var i = 0; i < 1000000000; i++) {
        arrObj[i] = new Array(9999);
        console.log(arrObj);
    }
</script>
</body>
</html>

HTML:内存溢出和内存泄漏_i++

内存泄漏

占用的内存没有及时释放
内存泄漏积累多了就容易导致内存溢出
常见的内存泄漏

  1. 占用内存很大的全局变量

    var num = new Array(99999999);
    var num1 = new Array(99999999);
    var num2 = new Array(99999999);
    var num3 = new Array(99999999);
    var num4 = new Array(99999999);
    var num5 = new Array(99999999);
    var num6 = new Array(99999999);
    var num7 = new Array(99999999);
    var num8 = new Array(99999999);
    
    // 清理
    num=null;
    
  2. 没有及时清理的计时器/定时器

    var intervalID = setInterval(function () {
        console.log("----");
    },1000)
    
    clearInterval(intervalID);
    
  3. 闭包

    function fn1() {
        var num = 1111;
        function fn2() {
            num--;
            console.log(num);
        }
        return fn2;
    }
    
    var f = fn1();
    f();
    
    // 清除
    f=null;