js垃圾回收的机制
1、js垃圾自动回收机制
垃圾回收:即释放掉js中数组、字符串、对象等的内存
自动回收机制:即垃圾收集器会按照固定的时间间隔或代码执行中预定的收集时间,周期性地执行一些操作=>找出不再继续使用的变量,然后释放其占用的内存。
垃圾回收的方法常有:标记清除法、引用计数法。
2、标记清除
标记清除理解:根据不可清除的变量(如:全局变量)等形成一个个根节点,在根据一个个根节点向下衍生可以访问到(连接到)的变量,对这些可访问的进行标记,同时清除那些不可访问的变量
例如:
var a = { name:'a' };
a引用了name为'a'的对象;var b = a;
b也引用了name为'a'的对象a = null;
a不再引用对象,但此时b可访问到对象,所以对象不可删除;b = null;
b也不再引用对象,所以name为'a'的对象没办法访问到,对象将被清除内存;
3、引用计数
概念:用计数的含义是跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型值赋给该变量时,则该值的引用次数就是1;
如果同一个值又被赋给另一个变量,则该值的引用次数加1;如果包含对该值引用的变量又取得了另外一个值,则该值的引用次数减1。
当该值的引用次数变为0时,则可以回收其占用的内存空间。当垃圾回收器下一次运行时,就会释放那些引用次数为0的值所占用的内存。
关于学习到的一些记录与知识总结