日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6(三)——Set、WeakSet、Map、WeakMap

發布時間:2024/7/5 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6(三)——Set、WeakSet、Map、WeakMap 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Set的基本使用

在ES6之前,我們存儲數據的結構主要有兩種:數組、對象。

  • 在ES6中新增了另外兩種數據結構:Set、Map,以及它們的另外形式WeakSet、WeakMap。

Set是一個新增的數據結構,可以用來保存數據,類似于數組,但是和數組的區別是元素不能重復。

  • 創建Set我們需要通過Set構造函數(暫時沒有字面量創建的方式):

我們可以發現Set中存放的元素是不會重復的,那么Set有一個非常常用的功能就是給數組去重

Set的常見方法:

Set常見的屬性:

  • size:返回Set中元素的個數;

Set常用的方法:

  • add(value):添加某個元素,返回Set對象本身;

  • delete(value):從set中刪除和這個值相等的元素,返回boolean類型;

  • has(value):判斷set中是否存在某個元素,返回boolean類型;

  • clear():清空set中所有的元素,沒有返回值;

  • forEach(callback, [, thisArg]):通過forEach遍歷set;

  • 另外Set是支持for of的遍歷的

二、WeakSet使用

和Set類似的另外一個數據結構稱之為WeakSet,也是內部元素不能重復的數據結構。

那么和Set有什么區別呢?

  • 區別一:WeakSet中只能存放對象類型,不能存放基本數據類型;
  • 區別二:WeakSet對元素的引用是弱引用,如果沒有其他引用對某個對象進行引用,那么GC(垃圾回收器)可以對該對象進行回收;

    WeakSet常見的方法:
  • add(value):添加某個元素,返回WeakSet對象本身;
  • delete(value):從WeakSet中刪除和這個值相等的元素,返回boolean類型;
  • has(value):判斷WeakSet中是否存在某個元素,返回boolean類型;

WeakSet的應用

注意:WeakSet不能遍歷

  • 因為WeakSet只是對對象的弱引用,如果我們遍歷獲取到其中的元素,那么有可能造成對象不能正常的銷毀。
  • 所以存儲到WeakSet中的對象是沒辦法獲取的

那么這個東西有什么用呢?

三、Map的基本使用

另外一個新增的數據結構是Map,用于存儲映射關系。 但是我們可能會想,在之前我們可以使用對象來存儲映射關系,他們有什么區別呢?

  • 事實上我們對象存儲映射關系只能用字符串(ES6新增了Symbol)作為屬性名(key);

  • 某些情況下我們可能希望通過其他類型作為key,比如對象,這個時候會自動將對象轉成字符串來作為key;

那么我們就可以使用Map:

Map的常用方法

Map常見的屬性:

  • size:返回Map中元素的個數;

Map常見的方法:

  • set(key, value):在Map中添加key、value,并且返回整個Map對象;
  • get(key):根據key獲取Map中的value;
  • has(key):判斷是否包括某一個key,返回Boolean類型;
  • delete(key):根據key刪除一個鍵值對,返回Boolean類型;
  • clear():清空所有的元素;
  • forEach(callback, [, thisArg]):通過forEach遍歷Map;
  • Map也可以通過for of進行遍歷。

四、WeakMap的使用

和Map類型相似的另外一個數據結構稱之為WeakMap,也是以鍵值對的形式存在的。

那么和Map有什么區別呢?

  • 區別一:WeakMap的key只能使用對象,不接受其他的類型作為key

  • 區別二:WeakMap的key對對象的引用是弱引用,如果沒有其他引用引用這個對象,那么GC可以回收該對象;

WeakMap常見的方法有四個:

  • set(key, value):在Map中添加key、value,并且返回整個Map對象;
  • get(key):根據key獲取Map中的value;
  • has(key):判斷是否包括某一個key,返回Boolean類型;
  • delete(key):根據key刪除一個鍵值對,返回Boolean類型;

WeakMap的應用

注意:WeakMap也是不能遍歷的

  • 因為沒有forEach方法,也不支持通過for of的方式進行遍歷;那么我們的WeakMap有什么作用呢?

總結

以上是生活随笔為你收集整理的ES6(三)——Set、WeakSet、Map、WeakMap的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。