javascript垃圾回收机制

什么是垃圾回收机制

  • 垃圾回收机制是JavaScript 中使用的内存管理系统的基本组成部分,是为了防止内存泄露。
  • JavaScript 在创建变量时自动进行了内存分配,并且在它们不使用的时候“自动释放内存”。
  • 内存在不使用时就被垃圾回收器自动回收

注:
内存泄露:内存泄露也称作“存储泄露”,用动态存储分配函数动态开辟的空间,在使用完之后未释放,结果导致一直占据该内存单元,直到程序结束。(说白了就是使用完之后未回收)

垃圾回收方式

垃圾回收机制标记策略只要有两种:标记清理和引用计数。
标记清理:这是垃圾回收机制中最常用的垃圾回收方式。

  • 当变量进入执行环境时(函数中声明变量),就标记这个变量“进入环境”,当变量离开环境的时候(函数执行结束),则将其称为“离开环境”,离开环境中以后仍存在的变量就是需要被删除的变量。

  • 垃圾回收器在运行的时候会给存储在内存中的所有变量都加上标记

  • 去掉环境中的变量以及被环境中变量引用的变量的标记;

  • 之后再被加上标记的变量即是需要回收的变量(因为环境中已经无法访问到这些变量)

  • 最后,垃圾回收器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间。

引用计数:对每个值都记录他被引用的次数。当声明变量并引用赋值时,这个值的引用次数为1。当值又被赋给另一个变量时,引用次数加一。依此,不断累加。当变量被其他值覆盖时,则引用值减一。当引用值为零时,则表示该值不会再被访问了。垃圾回收机制会在下次运行时,释放引用次数为零的值,回收内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值