js的垃圾回收机制

        垃圾回收器会每隔一段时间找出那些不再使用的内存,然后为其释放内存。

        js的垃圾回收一般使用标记清除方法和引用计数方法:

  • 标记清除法:

    • 当变量进入环境标记为进入环境,离开环境标记为离开环境。

    • 垃圾回收器会在运行的时候储存在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量引用的变量(闭包),在这些完成之后仍存在标记的就是要删除的变量了。

  • 引用计数法:

    • 在低版本的IE中经常出现内存泄漏,很多时候就是因为其采用引用计数法进行垃圾回收。

    • 引用计数的策略是跟踪记录每个值被使用的次数,当声明了一个变量并将一个引用类型赋值给该变量的时候这个值的引用次数就加1,如果该变量的值变成了另一个,则该值引用次数减1,当这个值的引用次数为0的时候,说明变量没有在使用,这个值没法被访问了,因此可以将其占用的空间收回,这样垃圾回收器会在运行的时候清理掉引用次数为0的值的占用空间。

        垃圾回收程序会周期性运行,如果内存中分配了很多变量,则可能造成性能损失,因此垃圾回收的时间调度很重要。

你可能感兴趣的:(前端,javascript)