站長資訊網
        最全最豐富的資訊網站

        es6中的map是什么意思

        在es6中,map是一種數據結構,是“key-value”的集合,key可以是任意類型的數據;map提供了“值與值”的對應,是一種更完善的hash結構實現,語法為“new Map([iterable])”。

        es6中的map是什么意思

        本教程操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

        es6中的map是什么意思

        什么是Map

        之前 ES5 中是沒有 Map 這種數據集合的,ES6才把它添加進來了。

        Map 是 key-value 的集合,key 可以是任意類型的數據,類似于對象,但對象的 key 只能是字符串。

        ES6 提供了 Map 數據結構。它類似于對象,也是鍵值對的集合,但是“鍵”的范圍不限于字符串,各種類型的值(包括對象)都可以當作鍵。

        也就是說,Object 結構提供了“字符串—值”的對應,Map 結構提供了“值—值”的對應,是一種更完善的 Hash 結構實現。

        如果你需要“鍵值對”的數據結構,Map 比 Object 更合適。

        語法

        new Map([iterable])

        Iterable 可以是一個數組或者其他 iterable 對象,其元素為鍵值對(兩個元素的數組,例如: [[ 1, 'one' ],[ 2, 'two' ]])。

        每個鍵值對都會添加到新的 Map。

        null 會被當做 undefined。

        Object 和 Map 的比較:

        Objects 和 Maps 類似的是,它們都允許你按鍵存取一個值、刪除鍵、檢測一個鍵是否綁定了值。因此(并且也沒有其他內建的替代方式了)過去我們一直都把對象當成 Maps 使用。不過 Maps 和 Objects 有一些重要的區別,在下列情況里使用 Map 會是更好的選擇

        • 一個Object的鍵只能是字符串或者 Symbols,但一個 Map 的鍵可以是任意值,包括函數、對象、基本類型。

        • Map 中的鍵值是有序的,而添加到對象中的鍵則不是。因此,當對它進行遍歷時,Map 對象是按插入的順序返回鍵值。

        • 你可以通過 size 屬性直接獲取一個 Map 的鍵值對個數,而 Object 的鍵值對個數只能手動計算。

        • Map 可直接進行迭代,而 Object 的迭代需要先 獲取它的鍵數組,然后再進行迭代。

        • Object 都有自己的原型,原型鏈上的鍵名有可能和你自己在對象上的設置的鍵名產生沖突。雖然 ES5 開始可以用 map = Object.create(null) 來創建一個沒有原型的對象,但是這種用法不太常見。

        • Map 在涉及頻繁增刪鍵值對的場景下會有些性能優勢。

        示例如下:

        // 字符串作為key,和JS對象類似 var map = new Map() // set map.set('name', 'John')//兩個參數,分為對應map中key,value,  推進去的時候會自動檢查類型,Object,String,Array等l map.set('age', 29) // get map.get('name') // John map.get('age')  // 29 這么對代碼,看起來確實沒有JS對象簡潔 但Map的強大之處在于它的key可以是任意類型 // 對象作為key演示 var xy = {x: 10, y: 20}   // 坐標 var wh = {w: 100, h: 200} // 寬高 var map = new Map() // set map.set(xy, '坐標') map.set(wh, '寬高') // get map.get(xy) // '坐標' map.get(wh) // '寬高'

        結果:

        es6中的map是什么意思

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 青草国产精品久久久久久| 2020久久精品国产免费| 亚洲国产精品VA在线看黑人 | 亚洲精品狼友在线播放| 在线观看日韩精品| 精品一区二区三区在线观看视频| 免费精品久久久久久中文字幕| 久久这里只精品国产99热| 精品亚洲国产成AV人片传媒| 日本精品久久久久久久久免费| 国产vA免费精品高清在线观看| 99热在线日韩精品免费| 国产午夜精品久久久久免费视| 亚洲一区二区三区在线观看精品中文| 国产精品无码无卡无需播放器| 秋霞久久国产精品电影院| 97精品国产手机| 97人妻无码一区二区精品免费| 久久精品亚洲日本波多野结衣| 亚洲中文久久精品无码| 一本色道久久88综合日韩精品| 四虎国产精品成人| 日本国产精品久久| 亚洲AV蜜桃永久无码精品| 蜜臀久久99精品久久久久久| 国产亚洲精品不卡在线| 成人午夜精品亚洲日韩 | 久久久精品国产亚洲成人满18免费网站 | 国产精品视频第一页| 国产区精品一区二区不卡中文| 久久亚洲私人国产精品| 无码人妻精品一区二区三区久久久| 偷拍精品视频一区二区三区| 无码AV动漫精品一区二区免费| 日韩一区二区精品观看| 欧美亚洲另类精品第一页| 日韩精品无码免费视频 | 欧美精品在线免费| 亚洲欧美精品午睡沙发| 亚洲欧美日韩精品专区| 亚洲欧美日韩国产精品一区二区|