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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

es6中map指的是什么意思

發布時間:2023/12/15 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 es6中map指的是什么意思 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章將為大家詳細講解有關es6中map指的是什么意思,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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

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

es6中的map是什么意思

什么是Map

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

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

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

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

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

語法

newMap([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對象類似
varmap=newMap()
//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演示
varxy={x:10,y:20}//坐標
varwh={w:100,h:200}//寬高
varmap=newMap()
//set
map.set(xy,'坐標')
map.set(wh,'寬高')
//get
map.get(xy)//'坐標'
map.get(wh)//'寬高'

結果:

總結

以上是生活随笔為你收集整理的es6中map指的是什么意思的全部內容,希望文章能夠幫你解決所遇到的問題。

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