浏览器在存储数据时会分配内存,如果只分配不回收那内存肯定是不够用的。那怎样的内存会被回收呢,那些被视为垃圾的(即没用了的)内存就是需要被清除的。
浏览器的两种垃圾回收方法:引用计数、标记清除
引用计数:统计变量被引用的次数,统计次数为0的被回收。(缺陷:对象间的相互引用无法被清除)
缺陷示例:
function temp(){ let a = {}; let b = {}; a.age=b; b.age=a; }
标记清除:无法被访问到的变量会被标记,被标记的就被回收。
理解示例:
function temp(){ let obj ={age:12}; obj = null;// 重新赋值之后,{age:12}就是无法访问的变量,需要被回收 }
持续的输入与输出。