
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了程序员在学习Java编程开发语言的时候需要掌握的一些基础知识等内容,而本文我们就继续来学习一下,JavaScript编程垃圾回收概念与应用。
垃圾回收
平常js的开发过程中,我们所创建的基本数据类型和引用数据类型,要都是需要开辟内存空间才能运行的,否则就会存在内存溢出、泄露之类的风险。
要知道的是:js中的内存管理是对用户不可见的,且自动执行的。
关注点:js引擎如何处理我们不再需要的那些数据类型从而释放内存,这就是js的垃圾回收机制。
什么样的数据会被回收
简单来说,一个数据类型的声明周期结束之后,就会被回收,他的内存也会被释放。
全局变量生命周期会持续到会话关闭
局部变量的生命周期在函数执行完毕之后就结束了
经常被提起的两种js垃圾回收方式
标记清除
大部分浏览器用这种方法进行垃圾回收。当变量被声明进入js的执行环境,垃圾回收器对其进行标记状态“进入环境”,在变量结束生命周期后标记为“离开环境”。
带有“在当前执行环境中的变量”标记的变量都不会被清除,其他的变量都会被清除回收。
它会去掉处在环境中的变量及被环境中的变量引用的变量标记(闭包)。而在此之后剩下的带有标记的变量被视为准备删除的变量
引用计数
低版本的ie使用这种方式,会有内存泄露的风险。
机制为跟踪变量的引用次数:声明变量并将一个引用类型赋值给该变量时该值引用次数加1,当这个变量指向其他值时该值的引用次数便减1,引用次数为0时进行回收。
该方式会引起内存泄漏的原因是它不能解决循环引用的问题
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。