JS里的Map對象是什么-創(chuàng)新互聯(lián)

這篇文章主要講解了“JS里的Map對象是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JS里的Map對象是什么”吧!

創(chuàng)新互聯(lián)建站服務(wù)項目包括花溪網(wǎng)站建設(shè)、花溪網(wǎng)站制作、花溪網(wǎng)頁制作以及花溪網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,花溪網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到花溪省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

ECMAScript6新增的數(shù)據(jù)結(jié)構(gòu)

定義

Map對象保存鍵/值對,是鍵/值對的集合。任何值(對象或者原始值)都可以作為一個鍵或一個值。Object結(jié)構(gòu)提供了“字符串-值”的對應(yīng),Map結(jié)構(gòu)提供了“值-值”的對應(yīng)。

語法

iterable可以是一個數(shù)組或者其他iterable對象,其元素或為鍵值對,或為兩個元素的數(shù)組。每個鍵值對都會添加到新的Map。null會被當(dāng)做undefined。

描述

集合中的鍵和值可以是任何類型。如果使用現(xiàn)有鍵向集合添加值,則新值會替換舊值。

Object和Map對象的對比:

相似點(diǎn):都允許你按鍵存取一個值、刪除鍵、檢測一個鍵是否綁定了值。

不同點(diǎn):

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

2.Map中的鍵值是有序的,而添加到對象中的鍵則不是。因此,當(dāng)對它進(jìn)行遍歷時,Map對象是按插入的順序返回鍵值。

3.通過size屬性直接獲取一個Map的鍵值對個數(shù),而Object的鍵值對個數(shù)只能手動計算。

4.Map是可迭代的,而Object的迭代需要先獲取它的鍵數(shù)組然后再進(jìn)行迭代。

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

6.Map在頻繁增刪鍵值對的場景下會有些性能優(yōu)勢。

所有的Map實例都會繼承自Map.prototype。

屬性

如果對同一個鍵多次賦值,后面的值將覆蓋前面的值。

如果讀取一個未知的鍵,則返回undefined。!!!注意,只有對同一個對象的引用,Map結(jié)構(gòu)才將其視為同一個鍵。Map的鍵實際上是跟內(nèi)存地址綁定的,只要內(nèi)存地址不一樣,就視為兩個鍵。這就解決了同名屬性碰撞(clash)的問題,我們擴(kuò)展別人的庫的時候,如果使用對象作為鍵名,就不用擔(dān)心自己的屬性與原作者的屬性同名。

感謝各位的閱讀,以上就是“JS里的Map對象是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JS里的Map對象是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁標(biāo)題:JS里的Map對象是什么-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article22/cesicc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、面包屑導(dǎo)航靜態(tài)網(wǎng)站、做網(wǎng)站、微信公眾號、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)