javascript的垃圾回收机制讲一下?

发布于 2022-09-20 23:36:11
关注者
0
被浏览
16
2 个回答
  • 匿名网友
    匿名网友 2022-09-20
    当一个数据不被引用时,就会被系统回收
  • 匿名网友
    匿名网友 2022-09-20
    简单点说,就是JS需要确定哪个变量还在被使用,哪些不再被使用。不在被使用的,就会被JS当做垃圾回收,释放相关资源。主要有两种垃圾回收策略,一种是标记法,一种是计数法。标记过程的实现有很多种,简单来说就是在垃圾回收程序执行时,会销毁带有标记的值并回收它们所占用的内存。现在大多数浏览器使用的都是标记法回收机制,只是不同浏览器的实现上,回收频率有差异而已。计数法就是对变量的引用做计数,当计数为0的时候,意味着这个变量应该要被垃圾回收了。但是计数法可能会导致循环引用的问题,比如对象一引用了对象二,对象二反过来也引用了对象一,导致相关内存资源一直得不到释放。所以计数法这种回收策略已经不再常用。在IE8及早期版本中,因为BOM和DOM使用的就是计数法回收机制,导致JS原生对象如果和BOM和DOM这种组件对象相互引用时,就有可能会导致无法回收。在IE9之后,BOM和DOM就被改成了标记法回收,就避免了这种因为垃圾回收不了导致的内存泄露问题。
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看