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

2021-10-07 14:14:36 字數 2469 閱讀 1956

object和map儲存的都是鍵值對組合,本文將介紹json物件和map的使用,對比它們之間的差異

1.1 json物件

json物件的使用比較簡單,他是key-value形式的鍵值對,直接用花括號包裹起來即可定義,使用時用.號加key值得形式客戶獲取到value的值,也可以用這個方法來改變value值,示例如下:

var a =

console.

log(a);//

console.

log(

typeof a)

;//object

console.

log(object.prototype.tostring.

call

(a))

;//[object object]

console.

log(a.key1)

;//value1

a.key1 =

"value1-change"

;console.

log(a.key1)

;//value1-change

1.2 map物件

map物件使用時需要使用new map()來定義,使用set(key, value)來給map物件新增值,使用get(key),來獲取map物件的值,使用delete(key)來刪除map的值,示例如下:

var a =

newmap([

["key1"

,"value1"]]

);console.

log(a)

;//map(1)

a.set

("key2"

,"value2");

console.

log(a)

;//map(2)

console.

log(a.

get(

"key2"))

;//value2

a.delete

("key2");

console.

log(a)

;//map(1)

猜測json物件和map物件的遍歷並沒有本質上的區別,即對json物件和map的遍歷是通用的。

var a =

;var b =

newmap([

["key1"

,"value1"]]

);console.

log(

json

.stringify

(a));//

console.

log(

json

.stringify

(b))

;//{}

for(

var key in a)

/*列印undefined

for(var key in b)*/

/*uncaught typeerror: a is not iterable

for(var value of a)*/

for(

var value of b)

/*vm252:1 uncaught typeerror: a.foreach is not a function

a.foreach((value, key) => );*/

b.foreach

((value, key)

=>

);

根據上面的示例,發現乙個有趣的現象。之前猜測是錯誤的,顯然,上面的三種遍歷方法對於陣列來說是通用的,但是對於json物件和map是有區別的,在這裡不去細究,只需要記住:

json物件和map在使用上的最大差異是:json的key值只能是字串;map的key值可以是物件

var keyob =

;var a =

;var b =

newmap()

;b.set(keyob,

"value1");

console.

log(b)

;//map(1) => "value1"}

console.

log(b.

get(keyob));

//value1

a[keyob]

="value2"

;console.

log(a);//

console.

log(a[keyob]);

//value2

console.

log(a[

"[object object]"])

;//value2

多數時間是使用json物件來儲存鍵值對,只用當需要key值是物件的情況下需要用的map。

Js中Map物件的使用

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

js之旅(七)js中this

本文講述js中this的指向 介紹es5和es6中this的不同 在js es5中,使用的是function函式,誰在呼叫function,this就指向誰,有以下幾個特點 1.1 this最終指向的是呼叫它的物件 這個特點的就是es5中this的指向,其它特點都是對它的補充,如下示例 functi...

JS中物件 陣列 Map的遍歷

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