【早讀匯】廣州@mogeWCY的《實戰ES2015》筆記

前言數組

早讀匯截止到目前已經舉辦三期了,你參與過了嗎?今天分享的筆記來自早讀匯第二期的廣州@mogeWCY童鞋關於《實戰ES2015》的其中一章的筆記。數據結構


正文從這開始~ide


你們都知道js的數據類型分爲了基本類型和引用類型函數

  • 基本類型:number,string,boolean,null,undefinedspa

  • 引用類型:object(Array,Function,Date,Regexp,Error)設計


可是實際上咱們可能在和其餘工種的語言合做的時候會發現,他們嘴裏會說出字典,列表,集合等一些數據類型。每中語言有不一樣的數據類型,如今ES6也緊跟上來了對象


ES6中下新增的數據結構blog


Set索引

Set是一個無序不重複元素的集合(想一想高中數學學的集合的概念)對象。他是無序的數組,且該數組中沒有重複項。 因此正因爲他的這兩個特性,我想到了這些:圖片

  • 能夠利用這個特性作數組去重

  • 由於是無序的因此不能經過索引來取集合中的元素 Ps:那要怎樣取值呢,往下看


在建立集合對象時咱們得使用new關鍵字來建立,一樣能夠把一個數組做爲參數傳進集合對象

圖片


下面咱們來看一下Set的 API

  • set.add(value):爲集合添加元素

  • set.clear():清空集合對象

  • set.delete(value):刪除集合對象值爲value的元素

  • set.forEach(callbackFn[,context]):和數組的使用方法同樣

  • set.has(value):檢查集合內是否有值爲value的元素,並返回布爾值,很明顯這個方法比數組對象的**indexOf**方法直觀多了

  • set.values():返回一個新的迭代器對象,該對象包含Set對象中的按插入順序排列的全部元素的值

  • set.keys():與values()方法相同,返回一個新的迭代器對象,該對象包含Set對象中的按插入順序排列的全部元素的值。

  • set.size():返回返回Set對象的值的個數


注:使用下面的方法能夠快速的實現數組去重

圖片


WeakSet

WeakSet 是升級版的Set對象,是爲了合理運用內存來設計的 與Set對象的差異大概以下:

  • WeakSet 不能包含值類型元素,不然會拋出一個TypeError

  • WeakSet 不能包含無引用的對象,不然會自動清除出集合

  • WeakSet 沒法被探知其大小,也沒法被探知其中所包含的元素 > Weak版本的數據類型是沒法包含無引用的元素的,一旦數據結構內的任意元素的引用被所有解除 該元素便會被移除出當前所在的數據結構


Map

Map對象是簡單的鍵/值映射

在建立映射對象時,能夠直接用new關鍵字建立,或者能夠將一個二元數組(鍵值對)傳入到構建函數中, 其中每個鍵值對都會加入到該映射對象中。該數組內的元素會以數組順序進行處理,若是存在相同的鍵,則會 按照先進先出的原則,以該鍵最後一個處理的對應的值爲最終值。


下面咱們來看下map的方法

  • map.set(key,value):添加鍵值對到映射中

  • map.get(key):獲取映射中某一個鍵的對應值

  • map.delete(key):將某一鍵值對移出映射

  • map.clear():清空映射中的全部鍵值對

  • map.entries():返回一個以二元數組(鍵值對)做爲元素的數組

  • map.has(key):檢查映射中是否包含某一鍵值對

  • map.keys():返回一個以當前映射中全部鍵做爲元素的可迭代對象

  • map.values():返回一個以當前映射中全部值做爲元素的可迭代對象

  • map.size():映射中鍵值對的數量


映射對象與Object的區別

map對象能夠以任意對象做爲鍵,也能夠很方便地獲取鍵值對的數量。然而這些對於普通的Object對象是不能夠的,注意。Object對象是沒有length屬性的


最後,廣州@mogeWCY童鞋是第二期參與早讀匯的,當時書是沒有漂流到他這邊的,但他用本身買的書來參與活動的,也是目前惟一一個。

相關文章
相關標籤/搜索