javaScript的垃圾回收机制

javaScript的垃圾回收机制是自动进行的,主要目的是为了释放不再使用的变量和对象的内存空间,避免内存泄漏和浪费。

垃圾回收机制分为两种:标记清除和引用计数

1.标记清除:

在JavaScript中,当一个变量不再被使用时,JavaScript引擎会将其标记为“待回收”。当垃圾回收器开始运行时,它会遍历所有的变量,将那些被标记为“待回收”的变量清除掉。这个过程被称为标记清除。

优点是可以处理循环引用的情况,循环引用指的是两个对象互相引用,形成了一个环。这种情况下,引用计数机制无法处理,只能通过标记清除机制来处理。

缺点是遍历消耗资源,需要去遍历堆里面的对象。会导致内存碎片化(清理后的内存不是一整块)。新对象需要内存时要单向遍历一次内存空间。

2.引用计数:

引用计数机制是指对于每个对象,都会记录有多少个引用指向它。当引用指向这个对象的数量为0时,垃圾回收器就会将其回收。

引用计数机制的缺点是不能处理循环引用的情况。

比如这种引用的对象无法清理:

function  fn(){

var a = {}

var b = {}

a.b = b

b.a = a

return a

}

fn()

优点是算法简单,不消耗资源。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值