js 垃圾回收机制

了解


前:像java这种高级语言中都带有垃圾回收机制,而c语言这样的底层语言一般都是会有底层的内存管理接口,比如malloc()和free()。相反,JavaScript创建变量、对象、字符串等等时会自动进行内存分配,并且在不使用的时候会进行自动释放,这个释放的过程叫做垃圾回收。

内存分配的过程:分配你所需要的内存->使用分配到的内存 读,写 ->不需要的时候进行归还。底层语言第一部分和第三部分是明确的,而js中他是自动的。

垃圾的产生


创建一个基本类型、对象、函数都是需要占用内存的。而我们使用js时候是不需要关注的,他是自动分配的,不需要自己去动态分配内存。
现在举个例子

let obj = {
	name :'zhangsan'
};
obj = 2;

首先我们声明了一个变量obj是个对象,接着复制为一个整型,那么之前的对象的引用关系就没有了引用关系,也就是没用用处的。如果这个时候不进行相应的处理,越来越多的‘废’数据,内存也会一直被占用,所以需要去回收。

垃圾回收策略


在 JavaScript 内存管理中有一个概念叫做 可达性,就是那些以某种方式可访问或者说可用的值,它们被保证存储在内存中,反之不可访问则需回收
至于如何回收,其实就是怎样发现这些不可达的对象(垃圾)它并给予清理的问题, JavaScript 垃圾回收机制的原理说白了也就是定期找出那些不再用到的内存(变量),然后释放其内存
转自:https://juejin.cn/post/6981588276356317214

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值