详细文档
前端面试常考题:JS垃圾回收机制 - 掘金 (juejin.cn)
JavaScript中会被判定为垃圾的情形
- 对象不再被引用;
- 对象不能从根上访问到;
常见的GC算法:
- 引用计数
- 标记清除
- 标记整理
- 分代回收
性能优化
- 避免使用全局变量
- 全局变量会挂载在window下;
- 全局变量至少有一个引用计数;
- 全局变量存活更久,持续占用内存;
- 在明确数据作用域的情况下,尽量使用局部变量;
- 减少判断层级
- 减少数据读取次数
对于频繁使用的数据,我们要对数据进行缓存。 - 减少循环体中的活动
- 事件绑定优化
- 避开闭包陷阱