1.标记清理
JavaScript 最常用的垃圾回收策略是标记清理(mark-and-sweep)。当变量进入上下文,比如在函数内部声明一个变量时,这个变量会被加上存在于上下文中的标记。而在上下文中的变量,逻辑上讲,永远不应该释放它们的内存,因为只要上下文中的代码在运行,就有可能用到它们。当变量离开上下文时,也会被加上离开上下文的标记。
2.引用计数
另一种没那么常用的垃圾回收策略是引用计数(reference counting。当两个对象之间相互引用时,这两个对象的引用数永远不能变成0,也就不能被垃圾回收