js 垃圾回收机制(GC)
1、GC–garbage collection ,js具有“自动”垃圾回收机制
即执行环境会负责管理代码执行过程中使用的内存
2、GC会定期(周期性的)找出那些不再继续使用的变量,然后释放其内存
3、不再使用的变量即生命周期结束的变量会被释放,只能是局部变量
全局变量的生命周期,直到浏览器卸载页面才会结束
4、闭包由于内部函数原因,外部函数不能算结束,无法释放内存
5、js的垃圾回收机制----采用的方式
(1)标记清除法
当变量进入执行环境时,就将这个变量标记为“进入环境”,当变量离开环境时会被标记“离开环境”,离开环境的变量内存被释放
function f1(){
//被标记已进入执行环境
var a=1
var b=2
}
f1() //执行完毕,a,b被标记离开执行环境,内存释放
(2)引用计数法
跟踪记录每个值被引用的次数,当某个值的引用次数变为0时,说明没有方法在访问该值了,则可将其占用的内存收回
function f1(){
//跟踪a的引用计数
var a={} //a的引用次数 0
var b=a //a的引用次数 1
var c=a //a的引用次数 2
var b={} //a的引用次数 1
var c=[] //a的引用次数 0
}
(3)手工 --直接置空,GC下次再运行时会删除这些值
a=null
————————————————
版权声明:本文为CSDN博主「盐味气水」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_47433370/article/details/125944847