zoukankan      html  css  js  c++  java
  • 小红书第四版读书笔记-变量,作用域与内存

    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,因为闭包一直在引用着它

  • 相关阅读:
    谢尔排序(缩小增量排序)
    折半插入排序
    插入排序
    选择排序
    冒泡排序
    ul+js模拟select+改进
    ul+js模拟select
    前端面试题
    js数组去重的三种常用方法总结
    使用PHP实现文件上传和多文件上传
  • 原文地址:https://www.cnblogs.com/jianzhenghui/p/14599220.html
Copyright © 2011-2022 走看看