WeakMap WeakSet
特性:
WeakMap對key的引用和WeakSet的成員 是弱引用
WeakMap對key的引用和WeakSet的成員 只能是對象
無法遍歷
優點:
不易造成內存泄漏
弱引用引用了對象,但是不影響它的垃圾回收
不會因為該(弱)引用而改變原本的垃圾回收機制,在(弱)引用前應該進垃圾場的,(弱)引用后還是得進垃圾場,不受到(弱)引用的任何影響。
var obj = {}; var wm = new WeakMap(); // 弱引用 wm.set(obj, 1); console.log(wm.get(obj)); // 1 // obj為null,將會給垃圾回收機制回收。 obj = null; console.log(wm.get(obj)); // undefinedSet Map WeakSet WeakMap區別 Set
成員唯一、無序且不重復
[value, value],鍵值與鍵名是一致的(或者說只有鍵值,沒有鍵名)
可以遍歷,方法有:add、delete、has
WeakSet成員都是對象
成員都是弱引用,可以被垃圾回收機制回收,可以用來保存DOM節點,不容易造成內存泄漏
不能遍歷,方法有add、delete、has
Map本質上是鍵值對的集合,類似集合
可以遍歷,方法很多可以跟各種數據格式轉換
WeakMap只接受對象作為鍵名(null除外),不接受其他類型的值作為鍵名
鍵名是弱引用,鍵值可以是任意的,鍵名所指向的對象可以被垃圾回收,此時鍵名是無效的
不能遍歷,方法有get、set、has、delete
具體用法與更詳細解釋ES2015 WeakMap的學習和使用 - 知乎
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106597.html
摘要:返回一個布爾值,表示該值是否為的成員。返回鍵名的遍歷器返回鍵值的遍歷器返回鍵值對的遍歷器使用回調函數遍歷每個成員需要特別指出的是,的遍歷順序就是插入順序。該數組的所有成員,都會自動成為實例對象的成員。這意味著,數組的成員只能是對象。 1.Set ES6 提供了新的數據結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值。Set 本身是一個構造函數,用來生成 Set 數據結構...
摘要:返回一個布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。返回的都是遍歷器對象。結構的實例的方法,用于對每個成員執行某種操作,沒有返回值。這個特點意味著,無法引用的成員,因此是不可遍歷的。數組成員是一個或多個表示鍵值對的一維數組。 本文字數:4700+,閱讀時間約10分鐘。 如果有理解不到位的地方,歡迎大家糾錯。 一、Set 【01】Set是一種數據結構。類似于數組,但是成員的值...
摘要:數據類型基本用法提供了一種類似于數組的新的數據結構。實例屬性和方法本身是一個構造函數,用來生成數據結構。返回一個布爾值,表示該值是否為的成員。任何具有接口且每個成員都是一個雙元素的數組的數據結構都可以當作構造函數的參數。 Set數據類型 基本用法 ES6 提供了一種類似于數組的新的數據結構 Set。它的成員的值都是唯一的,沒有重復的值。 const s = new Set(); [2...
摘要:類似于與的區別和的對比與對比數據結構橫向對比,增查改刪增查改刪與對比增查改刪與對比增查改刪建議優先使用,不使用,特別是復雜的數據結構考慮數據唯一性,使用,放棄和 Set 1.add()方法和size屬性 { let list = new Set(); // add()方法向Set數據添加元素 list.add(5); list.add(7); /...
摘要:的默認遍歷器是另外這里需要格外強調的是中的方法是判斷鍵值是否存在的,如中的方法是判斷鍵名是否存在的,如解構轉換技巧轉轉為防止不必要的錯誤,直接丟棄不是字符串為鍵的屬性轉和類似,不過它只接受對象作為鍵名,除外。 Set Set 是一種集合結構,特征和數學中的一致,具有以下特征: 同一個集合中不能有相同元素 set 可以存放不同類型的數據 但使用過程中請注意以下幾點: 存入 set ...
閱讀 1334·2021-09-01 11:40
閱讀 3940·2021-08-05 10:03
閱讀 974·2019-08-30 15:54
閱讀 2816·2019-08-29 12:53
閱讀 3179·2019-08-29 12:23
閱讀 940·2019-08-26 13:45
閱讀 2277·2019-08-26 10:41
閱讀 2534·2019-08-23 16:44