JavaScript垃圾回收机制
JavaScript垃圾回收机制
常见两种方法:引用计数,标记清除
引用计数:(IE9-使用)跟踪记录每个值被引用的次数,当声明一个变量并将一个引用类型的值赋给这个变量的时候,这个值的引用次数就是1,如果这个值再被赋值给另外一个变量,引用次数再加1。如果一个变量脱离了该值的引用,则该值的引用次数就减1,当引用次数为0的时候,垃圾回收机制回收该变量。
标记清除:垃圾回收机制给存储在内存中的所有变量加上标记,然后,它会去掉处在环境中的变量及被环境中的变量引用的变量的标记(闭包)。剩下的带有标记的变量被视为准备删除的变量,因为这些变量没有被任何环境中的变量所访问。最后垃圾回收机制运行时,将释放这些变量的内存,收回占用的空间。