千夜  
在一生的学习的过程中,发现学习我们急需使用或者能给我们及时带来价值的知识,我们会学的更加牢固,更加能坚持学习。

JavaScript常见的内存泄露:

1.意外声明全局变量:

eg: 

  function setName() {

    name = 'Jake';

  }

解释器会把变量name当作window的属性来创建(相当于window.name = 'Jake'),在Window对象上创建的属性,只要window本身不被清理就不会消失。只需要在变量声明前头加上var、let或const即可

 

2. 定时器:

eg: 

  let name = 'Jake';

    setInterval(() => {

      console.log(name);

    },1000);

  )

只要定时器一直运行,回调函数中引用的name就会一直占用内存

 

3.使用JavaScript闭包:

eg:  

  let outer = function(){

    let name = 'Jake';

    return function(){

      return name;

    };

  };

以上代码创建了一个内部闭包,只要Outer函数存在就不能清理name,因为闭包一直在引用着它

posted on 2021-03-30 22:26  jianzhenghui  阅读(144)  评论(0编辑  收藏  举报