垃圾回收由 JS 引擎实现, 对于我们来说是无法接触的
建议查看垃圾回收
可达性
可达性: 通过执行上下文链判断内存中的数据是否被引用
通过判断可达性决定内存中的数据是否可以被清除
例子
var obj = {
};
如果了解 C 语言指针以及计算机系统, 那么很容易知道:
上面的声明实际是在堆内存开辟了空间存储复杂数据 {}
, 分配的内存地址我们假设为 0x0001
那么 obj
指向栈内存, 存储的值为数据 {}
的地址, 即 0x0001
备注: 复杂数据即数据长度不确定, 数据可能非常大. 简单数据比如 var num = 0
, 这时候栈内存直接存储相应值 0