1.为什么要进行垃圾回收呢?
内存是程序运行时所依赖的宝贵的资源,合理利用内存是每个程序员在编码过程中应该关注的事情。
2.JavaScript垃圾回收机制:
JavaScript具有 自动垃圾回收机制,垃圾回收器会定期对那些我们不再使用的变量、对象所占用的内存进行释放、回收。
垃圾回收器,它的主要工作是跟踪内存的分配和使用,以便当分配的内存不再使用时自动释放它。
3.JS垃圾回收的算法:
(1)标记清除法
当变量进入执行环境时标记为“进入环境”,当变量离开执行环境时则被标记为“离开环境”,被标记为“进入环境”的变量是不能被回收的,因为它们正在被使用,而标记为“离开环境”的变量则可以被回收。
(2)引用计数法
统计引用类型变量声明后被引用的次数,当次数为0时,该变量将被回收。但是引用计数的算法有一个缺点:循环引用。
所以,在现代浏览器中,JS使用的垃圾回收机制是标记清除法,所以我们无需再担心循环引用带来的问题。