對(duì)象的定義與訪問
對(duì)象的鍵只有一種類型误墓,那就是字符串甫何,所以我們的鍵一般都要加上雙引號(hào)。如果鍵不加上雙引號(hào)也可以被轉(zhuǎn)換為字符串耕陷,不過這樣的做法不好掂名,如下如果把legs num去掉雙引號(hào)就不行了,因?yàn)閘egs后面的空格在轉(zhuǎn)換為字符串時(shí)就被識(shí)別為字符串的末尾哟沫。
var duck = {
"legs num": 4,
name: "Xiao",
"color": "black"
}
duck;
>> Object {legs num: 4, name: "Xiao", color: "black"}
對(duì)象定義也可以寫成一行
var duck = { "legs num": 4, name: "Xiao","color": "black" }
可以定義一個(gè)空對(duì)象饺蔑,后面陸續(xù)添加鍵值對(duì)。
duck = {}
duck["newName"]="Big";
duck["age"]=33;
duck.color = "white";
duck
>> Object {newName: "Big", age: 33, color: "white"}
雖然定義時(shí)嗜诀,鍵可以不加引號(hào)猾警,但是訪問對(duì)象元素時(shí)就必須加上引號(hào)
duck["legs num"]
4
duck[legs num]
>> Uncaught SyntaxError: Unexpected identifier
duck[name]
>> undefined
duck["name"]
>> "Xiao"
還可以通過點(diǎn)操作符訪問對(duì)象屬性
duck.name
>> "Xiao"
訪問對(duì)象所有的鍵
使用 Object.keys()傳入對(duì)象參數(shù),返回所有鍵組成的數(shù)組
Object.keys(duck)
>> ["legs num", "name", "color"]
訪問對(duì)象不存在的屬性時(shí)裹虫,不會(huì)報(bào)錯(cuò)肿嘲,會(huì)返回undefined
duck.isBrown
>> undefined