一句话概括:垃圾回收机制
不管什么程序语言, 内存生命周期基本是一致的:
- 分配你所需要的内存
- 使用分配到的内存(读、写)
- 不需要时将其释放\归还
总结:(理解!背)
JS 的垃圾回收机制是为了帮助浏览器合理的分配内存空间,将没有被引用的变量释放。
JS 的垃圾回收机制通常有两种方式:分别是标记清除和引用计数。其中 2012 年开始,所有的浏览器都使用了标记 - 清除算法。
-
该算法中,垃圾回收器将定期从全局对象开始,找所有从全局对象开始引用的对象。这样,垃圾回收器将找到所有可获得的对象和手机所有不能获得的对象。这样,0 引用的对象就是不可获得的。那么垃圾回收器就会将不可获得的对象进行回收。
-
而引用计数是最初的算法,它会跟踪并记录每个值的引用次数,垃圾回收器会回收引用次数为0的变量。这种方法会引起循环引用的问题
本文介绍了JavaScript的垃圾回收机制,包括标记清除和引用计数,重点讨论了如何减少垃圾回收带来的性能影响,如避免循环引用,优化数组、对象和函数。此外,还列举了可能导致内存泄漏的四种情况,以及对象继承的六种方式,如原型链、借用构造函数、组合继承等。
订阅专栏 解锁全文
593





