当前位置:网站首页>内存泄露与内存溢出

内存泄露与内存溢出

2022-08-11 05:17:00 前端小马

内存溢出:

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

内存泄漏:

1. 占用的内存没有及时释放

2.  内存泄露积累多了就容易导致内存溢出

3. 意外的全局变量:

JavaScript 处理未定义变量的方式比较宽松:未定义的变量会在全局对象创建一个新变量。在浏览器中,全局对象是 window 。

function fun(arg) { 
    a=1
} 

//实际上是
function fun(arg) { 
    window.a=1
} 

另一种意外的全局变量可能由 this 创建

function fun() { 
    this.a = "aaa"; 
} 
 
// fun 调用自己,this 指向了全局对象(window) 
fun(); 

3. 没有及时清理的计时器或回调函数

      setInterval(function(){
        console.log("...")// 启动定时器不清理
      },100)





      var time=setInterval(function(){
        console.log("...")
      },100)
      clearInterval(time)//及时清理

 4.闭包没有释放

      function fn1() {
        var arr = new Array(999999);
        function fn2() {
          console.log(arr.length);
        }
        return fn2;
      }
      var f = fn1(); //因函数fn2被f引用,所以fn2不会被回收
      f();
      f = null;//让内部函数成为垃圾对象,回收闭包,及时释放

原网站

版权声明
本文为[前端小马]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_56088882/article/details/125819474