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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:13:21
字體:
來源:轉載
供稿:網友

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的用法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對錯新站長站網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 四子王旗| 武威市| 夏邑县| 东安县| 信宜市| 桂林市| 灌云县| 永善县| 萨迦县| 娄底市| 安阳县| 龙州县| 根河市| 拜城县| 北海市| 清徐县| 雷山县| 阳谷县| 商城县| 阳曲县| 易门县| 黄龙县| 舟山市| 来安县| 玉林市| 方城县| 五莲县| 浏阳市| 涪陵区| 菏泽市| 新民市| 张北县| 林周县| 凤阳县| 米泉市| 石楼县| 陆川县| 云龙县| 简阳市| 同心县| 绿春县|