每日一练 js的垃圾回收机制

42 阅读1分钟

js在创建变量(对象、字符串等)自动分配内存,并且在不使用时‘自动’释放

内存在不使用的时候会被垃圾回收器自动回收

内存的生命周期

  1. 内存分配:当我们声明变量、函数、对象时,系统会自动分配内存
  2. 内存使用:读写内存,使用变量、函数等
  3. 内存回收:使用完毕,由垃圾回收器自动回收不用的内存

垃圾回收机制算法

  1. 引用技术法

被引用一次了会+1,然后累加,不用了就-1,直到为0,就释放

问题:如果互相引用就无法为0

  1. 标记清除法(主流)

标记:从根部(在js中就是全局对象)出发定时扫描内存中的对象,凡是能从根部到达的对象,都是在使用的

回收:哪些无法到达的对象被标记不再使用,稍后进行回收