📅  最后修改于: 2023-12-03 15:31:40.539000             🧑  作者: Mango
JavaScript 是一种自动垃圾回收的编程语言。垃圾回收是一种内存管理技术,它自动释放不再需要的内存,以免程序运行时内存被耗尽。
JavaScript 中的垃圾回收机制基于两个主要的概念:引用和可达性。
引用是指一个变量或对象属性,它指向另一个对象或原始类型的值。例如:
let obj1 = { name: "Alice" };
let obj2 = obj1;
在这个例子中,obj1
和 obj2
都指向同一个对象。这个对象有一个名为 name
的属性,它的值为字符串 "Alice"。
可达性是指当一个对象被引用时,它是可达的。如果一个对象不可达(即没有被引用),它就成为垃圾,可以被垃圾回收机制自动释放。例如:
let obj1 = { name: "Alice" };
let obj2 = obj1;
obj1 = null;
在这个例子中,当 obj1
被赋值为 null
时,它不再指向之前的对象。这意味着这个对象不再可达,成为了垃圾。垃圾回收机制将自动释放它的内存。
每个 JavaScript 引擎都有自己的垃圾回收器。垃圾回收器在运行时周期性地扫描内存,查找不再可达的对象,并将其释放。每个垃圾回收器的实现都有自己的优点和限制。在 JavaScript 中,垃圾回收器通常用于释放不再使用的动态分配的内存,例如通过 new
关键字创建的对象、数组和函数。
总结:
参考文献: