国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 疏附县| 肃宁县| 新巴尔虎左旗| 双鸭山市| 商洛市| 宁武县| 大新县| 邵武市| 湄潭县| 涞水县| 兴国县| 桑日县| 兴文县| 贡觉县| 潜江市| 克山县| 龙江县| 健康| 宝清县| 弥勒县| 朝阳市| 富宁县| 分宜县| 英德市| 和田县| 比如县| 怀化市| 西安市| 绥棱县| 盘山县| 龙泉市| 南和县| 社旗县| 晋江市| 曲松县| 土默特左旗| 辽阳市| 孟州市| 钟山县| 保定市| 昌吉市|