垃圾回收
JavaScript 中的内存管理是自动执行的,并且是不可见的。咱们建立基本类型、对象、函数……全部这些都须要内存。
当再也不须要某样东西时会发生什么? JavaScript 引擎是如何发现并清理它?
可达性
JavaScript 中内存管理的主要概念是可达性。
简单地说,“可达性” 值就是那些以某种方式可访问或可用的值,它们被保证存储在内存中。
1. 有一组基本的固有可达值,因为显而易见的缘由没法删除。例如:
本地函数的局部变量和参数
当前嵌套调用链上的其余函数的变量和参数
全局变量
还有一些其余的,内部的
这些值称为根。
2. 若是引用或引用链能够从根访问任何其余值,则认为该值是可访问的。
例如,若是局部变量中有对象,而且该对象具备引用另外一个对象的属性,则该对象被视为可达性。