1、标记清除
这是javascript中最常用的垃圾回收方式。当变量进入执行环境时,标记该变量为进入环境。逻辑上,不能释放进入环境的变量所占有的内存。因为只要流入相应的环境,就有可能使用它们。变量离开环境时,标记为离开环境。
var m = 0,n = 19 // 把 m,n,add() 标记为进入环境。 add(m, n) // 把 a, b, c标记为进入环境。 console.log(n) // a,b,c标记为离开环境,等待垃圾回收。 function add(a, b) { a++ var c = a + b return c }
2、引用计数
所谓"引用计数"是指语言引擎有一张"引用表",保存了内存里面所有的资源(通常是各种值)的引用次数。如果一个值的引用次数是0,就表示这个值不再用到了,因此可以将这块内存释放。
var arr = [1, 2, 3, 4]; arr = [2, 4, 5] console.log('浪里行舟');
以上就是JavaScript垃圾回收的两种方法,希望对大家有所帮助。
发表评论