js在创建变量(对象、字符串等)自动分配内存,并且在不使用时‘自动’释放
内存在不使用的时候会被垃圾回收器自动回收
内存的生命周期
- 内存分配:当我们声明变量、函数、对象时,系统会自动分配内存
- 内存使用:读写内存,使用变量、函数等
- 内存回收:使用完毕,由垃圾回收器自动回收不用的内存
垃圾回收机制算法
- 引用技术法
被引用一次了会+1,然后累加,不用了就-1,直到为0,就释放
问题:如果互相引用就无法为0
- 标记清除法(主流)
标记:从根部(在js中就是全局对象)出发定时扫描内存中的对象,凡是能从根部到达的对象,都是在使用的
回收:哪些无法到达的对象被标记不再使用,稍后进行回收