国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

ES6新增數據結構WeakSet的用法詳解

2024-05-06 16:38:51
字體:
來源:轉載
供稿:網友

WeakSet和Set類似,同樣是元素不重復的集合,它們的區別是WeakSet內的元素必須是對象,不能是其它類型。

特性:

1.元素必須是對象。

添加一個number類型的元素。

const ws = new WeakSet()ws.add(1)

結果是報類型錯誤。

TypeError: Invalid value used in weak set

添加一個對象。

const ws = new WeakSet()var a = {p1:'1', p2:'2'}ws.add(a)console.log(ws.has(a));

添加OK,結果顯示:

true

可以通過WeakSet的has方法判斷一個元素是否已在集合中。

如果不需要存儲元素時,可以使用delete方法刪除元素。

2.弱引用,不被計入垃圾回收

添加進WeakSet的元素對象,WeakSet不會對元素對像的引用計數加1,對于被添加進WeakSet的元素對象,只要該元素對象沒有被除WeakSet以外的其他對象引用,就會被垃圾回收釋放,在WeakSet中的該元素對象自動被釋放,不會出現內存泄漏。

因為這一特性,其性能要比map要高,對于存儲無順序要求的,不重復的,臨時存儲的場景,可以使用它。

const ws = new WeakSet()var a = {p1:'1', p2:'2'}ws.add(a)a = nullconsole.log(ws.has(a));

先將對象添加到WeakSet中,然后將對象設成null,然后再下面的has方法判定時,結果顯示,表示WeakSet中已經不存在該對象。

false

3.不能遍歷

因為其對內部的元素對象是弱引用,隨時會被垃圾回收釋放掉,所以其不支持size和forEach等遍歷方法。

總結

以上所述是小編給大家介紹的ES6新增數據結構WeakSet的用法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒲江县| 孝昌县| 安达市| 宣城市| 嘉善县| 景东| 祁连县| 景泰县| 佳木斯市| 洛隆县| 绥中县| 名山县| 兰州市| 邵东县| 获嘉县| 肇东市| 辛集市| 思南县| 芜湖市| 华容县| 太白县| 南皮县| 金门县| 深圳市| 嘉峪关市| 永新县| 成都市| 垫江县| 鄯善县| 博湖县| 筠连县| 商河县| 左云县| 景宁| 新营市| 达拉特旗| 宜阳县| 济宁市| 黄浦区| 都兰县| 泗水县|