JavaScript垃圾回收

2023-12-28  本文已影响0人  storyWrite

1. 常见实现原理

function foo() {
// 执行进入函数,变量定义赋值
  const num = 9
// 标记变量num为使用中
}
// 开始执行函数
foo()
//  函数执行完成 标记num为未使用

// 由浏览器垃圾回收机制(复杂),不同频率,或者当前浏览器内存使用情况等执行回收,回收标记为未使用的变量num
//  {name:'test'}引用为1
const a= {name:'test'}
//  {name:'test'}引用为2
const b = a 
//  {name:'test'}引用为1
b = null
//  {name:'test'}引用为0
a= bull
// 垃圾回收触发 回收 {name:'test'}

存在问题的情况

// {name:'a'} 引用为1
const a = {name:'a'}
// {name:'b'} 引用为1
const b = {name:'b'}
// {name:'b'} 引用为2
a.child = b
// {name:'a'} 引用为2
b.child = a

a = null
b = null
// 引用仍然为2 这两个变量将无法回收 

上一篇下一篇

猜你喜欢

热点阅读