JavaScript的垃圾收集机制
原理:找出不再继续使用的变量,然后释放其占用的内存。垃圾收集器会按照固定的时间间隔,周期性地执行这一操作。
- 标记清除
垃圾收集器会在运行的时候给内存中的所有变量打上标记,然后它会去掉环境中的变量以及被环境中变量引用的变量的标记,于是剩下的即为将被回收的变量,最后垃圾收集器完成内存清除工作。
- 引用计数
跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型赋给该变量时,这个值的引用次数就是1。如果该值再次被赋给另一个变量时,引用次数就再加一,当包含对该值引用的变量取得其他值的时候,这个值的引用次数会减1。当值引用次数变成0的时候,就说明没有办法再访问这个值了,因而就可以将其占有的内存回收。此方法遇上循环引用则会出现问题