内存泄漏和内存溢出

内存溢出:一种程序运行出现的错误,当程序运行需要的内存超过了剩余内存空间、时,就会抛出内存溢出错误
内存泄漏:占用的内存没有及时释放,内存泄漏积累过多就容易导致内存溢出,常见的内存泄漏:意外的全局变量、没有及时清理的计时器或回调函数、闭包
//内存溢出
  var obj = {}
  for (var i = 0; i < 10000; i++) {
    obj[i] = new Array(1000000)
    console.log('-------')
    console.log(obj)
  }

 

 

//内存泄漏
   //1.意外的全局变量
  function fn () {
    a = new Array(1000000) //全局变量
    console.log(a)
  }
  fn() //正常如果是局部变量的话,在函数执行完成以后就会被释放,全局变量的话就一直存在于内存中
 //2.定时器
var intervalid = setInterval(function () { //启动循环定时器后不清理
    console.log('-----')
  },1000)

  //clearInterval(intervalId) //关闭

  //3.闭包

  function  fun () {
    var a = 3;
    function fn1 () {
      console.log(a)
    }
    return fn1
  }
  var f = fn1()
  f()

 

 
posted @ 2019-12-14 16:41  leahtao  阅读(200)  评论(0编辑  收藏  举报