浏览器在存储数据时会分配内存,如果只分配不回收那内存肯定是不够用的。那怎样的内存会被回收呢,那些被视为垃圾的(即没用了的)内存就是需要被清除的。

浏览器的两种垃圾回收方法:引用计数、标记清除
引用计数:统计变量被引用的次数,统计次数为0的被回收。(缺陷:对象间的相互引用无法被清除)
缺陷示例:

function temp(){
    let a = {};
    let b = {};
    a.age=b;
    b.age=a;
}

标记清除:无法被访问到的变量会被标记,被标记的就被回收。
理解示例:

function temp(){
    let obj ={age:12};
    obj = null;// 重新赋值之后,{age:12}就是无法访问的变量,需要被回收
}

 

posted on 2023-11-10 09:13  bro阿柒  阅读(55)  评论(0编辑  收藏  举报