国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > ES6SetMap數據結構出現的意義是什么?

ES6SetMap數據結構出現的意義是什么?

來源:千鋒教育
發布人:xqq
時間: 2023-10-11 07:19:25 1696979965

一、ES6SetMap數據結構出現的意義

Map可以用任何類型作為鍵。明確保留順序。同時避免與Object優化場景沖突,性能優化潛力更大。Set可以輕易達到去重的目的。但更徹底的理解方式是,Set是只有鍵的Map,而不是不重復的Array。因此它可以理解為Map的語法糖,它比較的對象依然是Object,而不是Array。因此它真正的優點同樣是允許用任何類型的鍵、保留順序,而不是去重。

這些用Array都能手動模擬,但問題是性能上會存在很大的問題,同時也很不方便。如果這些都不重要,那其實ES連Array都不必有了,因為用Object也能模擬Array。從圖靈完備的角度來說,甚至string都不必有了,因為它們都能用用Object模擬的Array配合number實現。

ES6 提供了 Map 數據結構。它類似于對象,也是鍵值對的集合,但是“鍵”的范圍不限于字符串,各種類型的值(包括對象)都可以當作鍵。也就是說,Object 結構提供了“字符串—值”的對應,Map 結構提供了“值—值”的對應,是一種更完善的 Hash 結構實現。如果你需要“鍵值對”的數據結構,Map 比 Object 更合適。

延伸閱讀:

二、Maps 和 Objects 的區別

一個 Object 的鍵只能是字符串或者 Symbols,但一個 Map 的鍵可以是任意值。Map 中的鍵值是有序的(FIFO 原則),而添加到對象中的鍵則不是。

關于對象是無序的官方解釋: 1.An object is a member of the type Object. It is an unordered collection of properties each of which contains a primitive value, object, or function. A function stored in a property of an object is called a method. 2.Chrome Opera 的 JavaScript 解析引擎遵循的是新版 ECMA-262 第五版規范。因此,使用 for-in 語句遍歷對象屬性時遍歷書序并非屬性構建順序。而 IE6 IE7 IE8 Firefox Safari 的 JavaScript 解析引擎遵循的是較老的 ECMA-262 第三版規范,屬性遍歷順序由屬性構建的順序決定。

Map?的鍵值對個數可以從 size 屬性獲取,而?Object?的鍵值對個數只能手動計算。Object 都有自己的原型,原型鏈上的鍵名有可能和你自己在對象上的設置的鍵名產生沖突。
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT