概念:
js垃圾回收是指系统回收不再能访问到的变量,其中变量包含全局和局部变量。即系统释放被占用的内存
例如:
function f1(){
let a=1
console.log(a)
}
function f2(){
let b=2
return b
}
a()//执行完f1后,f1中的变量a无法再被访问,系统将自动回收,释放内存
let B=b()//执行完f2后,因B指向f2中的b,二者存在联系,视为可访问的变量,系统不回收
回收方式:
-
标记回收:在程序运行时,系统会将所有变量记上标记,然后排除掉存在引用关系的变量和当前环境下的变量,剩下的即为将被系统回收的变量。
-
引用计数。(很少有浏览器采用,因为这种方式无法解决循环以用的问题,这里不做阐述)