和C++不同,JS的内存回收由运行环境执行,减少了程序员的操作量.
目前,JS垃圾回收采用标记清理方法.当上下文代码执行时,将变量标记为在上下文,上下文执行完毕时,标记为不在上下文等待回收.回收机制每隔一段时间将不在上下文变量回收.
标记清理
标记
在上下文
不在上下文
有时候,部分代码会将上下文变量暴露给外部,造成垃圾回收失败.