JavaScript中的垃圾回收机制

js垃圾收集特点:
自动垃圾收集机制:即执行环境会管理代码执行过程中的使用的内存。
两种垃圾收集方式:
标记清除

  • 特点:

    变量进入环境后标记为“进入环境”,变量离开环境后,则将其标记为“离开环境”

引用计数

  • 特点

跟踪记录每个值被引用的次数

  • 引言:

IE中有一部分对象并不是原生javascript对象,比如BOM,DOM其实就是用的c++的COM(组件对象模型)对象的形式实现的,而其的GC机制就是采用的引用计数策略。
内存管理
js特殊的内存管理机制:分配给web浏览器的可用内存数量通常比分配给桌面应用程序的少。目的是处于安全因素,防止运行js的网页耗尽内存把系统也崩掉。
优化内存占用

  • 解除引用

一旦数据不再有用,最好通过将其值设置为null来释放其引用,作用是:让值脱离执行环境,以方便垃圾收集器下次运行时将其回收。
闭包-内存泄露:

function assignHandler(){
	var ele=document.getElementById('someElement');
	ele.onclick=function(){
		console.info('click');
	}
}

以上代码创建了一个作为ele元素事件处理程序的闭包,而这个闭包又创建了一个循环引用。只要匿名函数存在,ele的引用数就至少是1,因此它占用的内存永远不会被回收。
解决内存泄漏
将不再继续使用的闭包保存的整个变量对象赋值为null,对其进行解除引用,防止内存泄漏。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值