标记清除——JavaScript最常见的垃圾回收方式
JavaScript具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。而且有浏览器使用并实现。
工作原理:
当变量进入环境时(例如,在函数中声明一个变量),将这个变量标记为“进入环境”。当变量离开环境时(变量不参与运行),则将其标记为“离开环境”。标记“离开环境”的就回收内存。
工作流程
1.垃圾回收器在运行的时候会给存储在内存中的所有变量都加上标记。
2.去掉环境中的变量以及被环境中的变量引用的变量的标记。
3.再被加上标记的会被视为准备删除的变量。因为环境中的变量无法访问到这些变量了。
4.垃圾回收器完成内存清除工作,销毁那些带标记的值并回收他们所占用的内存空间。