变量垃圾回收机制

垃圾回收机制

 垃圾回收机制:
        - 是对内存中存储的值进行处理,回收不再使用的值;
        - js不需要手动回收变量,js引擎会自动回收变量;
      垃圾回收原理:
        1. 找出不再使用的变量
        2. 释放其占用内存
        3. 固定的时间间隔运行;
        (理解成对内存中的值,进行处理)

      垃圾回收的方式有:? 
        标记清除方式,引用计数方式
      标记清除的方式:mark and sweep
        进入环境标记
        离开环境标记
        function test(){
          var a = 0; //进入环境标记;
        }
        test(); //a 离开环境标记
      引用计数回收的方式:
        通过引用计数,当引用计数为0时,回收变量;
        如ie6低版本的内存回收方式;
        function test(){
          var a = new Object(); // a引用 = 1
          var b = new Object(); // b引用 = 1
          var c = a;  // a++ a = 2
          var c = b;  //a-- a = 1

          //特殊的情况,循环引用
          a.prop = b; //a = 2
          b.prop = a; //b = 2
          这种情况需要解除引用
          a = null;
          b = null;

        }
      
      垃圾回收的过程:
        首先排除全局变量和闭包带出来的变量;
        然后清除其余所有有离开环境标记的值,并回收它们所占用的内存空间;
        (几乎所有浏览器都在使用,标记清除的方式; 但ie6低版本不是这种方式;)

      变量的声明周期:
      
      


      一般讨论函数内部的局部变量的生命周期:
        在函数执行的时候变量被创建,在函数执行结束的时候,变量回收;
      怎样解除闭包的引用:
        test3 = null;  //test3是保存闭包的函数;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值