JavaScript creation date: update date:

關於 JavaScript 的 Map、WeakMap、Set 和 WeakSet

TL;DR

Map v.s. WeakMap

Map 是類似於 Object 的資料結構,都是用鍵與值(key-value pair)的形式儲存資料格式;WeakMap 和 Map 的使用方法相似,但有兩個主要不同的地方,分別是只允許 Object 作為鍵(key)和鍵(key)所指向的對象可以被垃圾回收。

Set v.s. WeakSet

Set 這個數據結構類似陣列,但是裡面的元素值都是唯一,不會有重複的值;WeakSet 和 Set 的使用方法相似,但有兩個主要不同的地方,分別是元素值只能是 Object 和元素可以被垃圾回收。

Map

介紹

Map 是類似於 Object 的資料結構,都是用鍵與值(key-value pair)的形式儲存資料格式。在 JavaScript 當中,Map 本身是一種構造函式,用來生成 Map 這種數據結構,具體做法是  new Map()  來生成實例。

常見操作方法

常見遍歷方法(遍歷順序會是置放到 Map 時的順序)

WeakMap

和 Map 的使用方法相似,但有兩個主要不同的地方:

Set

介紹

Set 這個數據結構類似陣列,但是裡面的元素值都是唯一,不會有重複的值。在 JavaScript 當中,Set 本身是一種構造函式,用來生成 Set 這種數據結構,具體的做法是透過  new Set()  來生成實例。

常見操作方法

WeakSet

和 Set 的使用方法相似,但有兩個主要不同的地方:

Reference

請解釋 Set、Map、WeakSet 和 WeakMap 的區別?| ExplainThis