js的垃圾回收是用的引用计数还是标记清除(js 中垃圾回收机制能将闭包不用的变量回收吗)

作者:安尼      发布时间:2021-08-19      浏览量:27481
js的垃圾回收是用的引用计数还是标记清除两者都是。引用计数是被动清除,标记是主动清除。vara;a=null;//给了一个清除标记,浏览器马上就会回收这个变量的内存同问。。。js 中垃圾回收机制能将闭包不用的变量回收吗理论上不回收。因为闭包

js的垃圾回收是用的引用计数还是标记清除


两者都是。
引用计数是被动清除,
标记是主动清除。
vara;
a=null;//给了一个清除标记,浏览器马上就会回收这个变量的内存

同问。。。


js 中垃圾回收机制能将闭包不用的变量回收吗


理论上不回收。因为闭包中的变量不会被回收这是闭包的特性之一。
但是实际上不同的浏览器实现的可能不一样。一些高端浏览器如果确认这个变量没有且不会再被使用的话,也可能将其回收。
找到stackoverflow上面的一个讲的相对详细的答案:
http://stackoverflow.com/questions/24468713/javascript-closures-concerning-unreferenced-variables

当然是可以的
再看看别人怎么说的。


javascript如何进行垃圾回收?


楼主问的这些,其实在javascript高级程序设计一书里已有详细说明了。我觉得需要纠正的是:
1、并不是所有的浏览器使用的都是”引用计数“这种垃圾回收算法,貌似只有IE6/IE7/IE8在用,现代浏览器比如Chrome/Firefox/Opera使用的比较好的”标记清除“算法。
2、并不是引用计数为0了,垃圾回收器就会立马回收,回收是会消耗一些性能,所以浏览器会在浏览器占用内存达到一定数值的时候,才会执行垃圾回收。当然可以通过强制调用方法执行。具体请看高程那边书
3、执行玩problem方法后,o

返回顶部 返回顶部 返回顶部