JavaScript的對(duì)象是一種無(wú)序的集合數(shù)據(jù)類型,它由若干鍵值對(duì)組成。
JavaScript的對(duì)象用于描述現(xiàn)實(shí)世界中的某個(gè)對(duì)象继效。
例如,描述一個(gè)人装获,我們可以用若干鍵值對(duì)來(lái)描述他:
var personA = {
name: "Eric",
birth: 1988,
height: 1.70,
weight: 65,
married: true
wife: "Nora",
childs: null
};
JavaScript 用一個(gè){...}
表示一個(gè)對(duì)象瑞信,鍵值對(duì)以xxx: xxx
形式申明,用,
隔開穴豫。注意凡简,最后一個(gè)鍵值對(duì)不需要在末尾加,
javaScript 的對(duì)象類似于 iOS 中的字典
上述對(duì)象申明了一個(gè)name
屬性,值是Eric
,birth
屬性秤涩,值是1990
帜乞,以及其他一些屬性;
訪問(wèn)屬性是通過(guò).操作符完成的,但這要求屬性名必須是一個(gè)有效的變量名
personA.name; // "Eric"
personA.birth; // 1988
實(shí)際上JavaScript對(duì)象的所有屬性都是字符串溉仑,不過(guò)屬性對(duì)應(yīng)的值可以是任意數(shù)據(jù)類型挖函。
訪問(wèn)不存在的屬性不報(bào)錯(cuò),而是返回undefined
personA.age; // undefined
由于JavaScript的對(duì)象是動(dòng)態(tài)類型浊竟,你可以自由地給一個(gè)對(duì)象添加或刪除屬性:
var personB = {
name = "Larry";
};
personB.age; // undefined
personB.age = 18; // 新增一個(gè) `age` 屬性
personB.age; // 18
delete personB.age; // 刪除 `age` 屬性
personB.age; // undefined
delete personB.birth; // 刪除一個(gè)不存在的`birth`屬性也不會(huì)報(bào)錯(cuò)
檢測(cè)對(duì)象是否擁有某一屬性怨喘,可以用in
操作符
var personA = {
name: "Eric",
birth: 1988,
height: 1.70,
weight: 65,
married: true
wife: "Nora",
childs: null
};
"name" in personA; // true
"gender" in personA; // false
如果in
判斷一個(gè)屬性存在,這個(gè)屬性不一定是對(duì)象本身的振定,它可能是它繼承得到的
"toString" in personA; // true
toString()
返回對(duì)象的字符串表示
判斷一個(gè)屬性是否是對(duì)象自身?yè)碛械谋亓皇抢^承得到的,可以用hasOwnProperty()
方法:
var personB = {
name = "Larry";
};
personB.hasOwnProperty("name"); // true
personB.hasOwnProperty("toString"); // false