Set
Set:類似數組,但是成員的值都是唯一的,沒有重復。
Set本身是一個構造函數,用來生成Set數據結構。
他包含的方法:
add: 添加某個值,返回Set結構本身。
delete: 刪除某個值,返回一個布爾值,表示是否成功;
has(value): 返回布爾值,表示該值是否為Set的成員;
clear():清除所有成員,沒有返回值
遍歷操作
keys():返回鍵名的遍歷器
values(): 返回健值對的遍歷器
entries():返回鍵值對的遍歷器
forEach(): 每個成員
WeakSet
他與Set類似,但是也有區別
1.weakSet的成員只能是對象,不能是其他類型的值
2.weakSet對象都是弱引用。如果其他對象不再引用該對象,那么垃圾回收機制會自動回收該對象所占的內存,所以WeakSet是不可遍歷的。
WeakSet結構的三個方法
add
delete
has
WeakSet的一個用處是儲存DOM節點,而不用擔心這些節點會從文檔中移除時,會引發內存泄露。
Map
他是鍵值對的集合(Hash結構)。他與Object結構的區別是:Object是一種“字符串-值”的對應,Map是“值-值”的對應。所以當需要“鍵值對”這樣的數據結構時,Map比Object更合適。
他的方法:
set(key, value)
get(key)
has(key)
delete(key)
clear()
遍歷方法
keys()
values()
entries()
forEach()
WeakMap
WeakMap跟Map結構基本類似,區別是只接受對象(null除外)作為鍵名,不接受其他類型的值作為鍵名,而且鍵名所指向的對象,不計入垃圾回收機制。