JavaScript垃圾回收是一種內存管理技術。在這種技術中,不再被引用的對象會被自動刪除,而與其相關的資源也會被一同回收。
Map和Set中對象的引用都是強類型化的,並不會允許垃圾回收。這樣一來,如果Map和Set中引用了不再需要的大型對象,如已經從DOM樹中刪除的DOM元素,那么其回收代價是昂貴的。
為了解決這個問題,ES6還引入了另外兩種新的數據結構,即稱為WeakMap和WeakSet的弱集合。這些集合之所以是“弱的”,是因為它們允許從內存中清除不再需要的被這些集合所引用的對象。
使用場景:儲存 DOM 節點,而不用擔心這些節點從文檔移除時,會引發內存泄漏。