JS中Map以物件作為鍵的問題

2021-09-11 21:17:48 字數 536 閱讀 1078

在map中不同的物件作為鍵能儲存不同的值(每個物件都被認為是唯一的)

下圖是《深入理解es6》書中擷取的

(紅色的報錯可忽略,之前宣告過了,我忘記了。對了,順便提一點,大家應該也都知道的:var宣告的可以覆蓋,let宣告過的如果再次宣告則會報錯)

此處涉及到物件的引用問題,

① key1={}; key2={}; 與 ②key1={}; key2=key1;是不一樣的。

第一種,本質上是在堆中建立了兩個不同的物件,而key1,key2都是棧中的兩個指標,分別指向這兩個物件。

而第二種,本質上只建立了乙個物件,key1和key2指向的都是這乙個物件。

只有乙個物件,自然只會儲存乙個值,所以無論map.get訪問key1還是key2都是一樣的結果。與上述的結論並不衝突

Js中Map物件的使用

1 定義 鍵 值對的集合。2 語法 mapobj new map 3 備註 集合中的鍵和值可以是任何型別。如果使用現有金鑰向集合新增值,則新值會替換舊值。4 屬性 建構函式 指定建立對映的函式。prototype 原型 為對映返回對原型的引用。size 返回對映中的元素數。5 方法 set 新增乙個...

JS中物件 陣列 Map的遍歷

js中的資料型別不多,資料 map以及物件是開發過程中經常使用到的複雜資料結構,經常需要遍歷來進行頁面資料的展示。先來建立乙個物件 var person 從 ecmascript 5 開始,有三種原生的方法用於列出或列舉物件的屬性 1 for.in.迴圈 該方法依次訪問乙個物件及其原型鏈中所有可列舉...

js之旅(五)js中的物件和Map

object和map儲存的都是鍵值對組合,本文將介紹json物件和map的使用,對比它們之間的差異 1.1 json物件 json物件的使用比較簡單,他是key value形式的鍵值對,直接用花括號包裹起來即可定義,使用時用.號加key值得形式客戶獲取到value的值,也可以用這個方法來改變valu...