對象數據類型由多組[屬性名和屬性值]組成,即多組鍵值對組成,由多個key: value組成。
屬性名和屬性值是用來描述這個對象特征的。
例如,要定義一個人的基本信息,如果只用基本數據類型,很難將這個人的信息給有效完整的表達,然而使用對象數據類型則可以很方便的表示:
var personInfo = {
name: 'derrick',
age: 20,
height: '180cm',
weight: '70kg'
};
這樣就創建好了一個名為personInfo
的對象。
對象有兩種創建方式,上述的是創建對象的方式之一,叫做字面量對象創建方式,寫法為:
var obj = {
key1: value1,
key2: value2,
...
}
第二種創建對象的方式是實例創建方式,其基本語法如下:
var obj = new Object();
在這種方式下,如果要對對象增加屬性,則可以用一下兩種方法:
// 方法一:
obj.name = 'derrick';
// 方法二:
obj['name'] = 'derrick';
那如何修改對象中的屬性值呢?
修改原有屬性名的屬性值,規定一個對象中的屬性名不能重復,如果之前有,就是修改,沒有就是增加。
例如,對于上述的對象obj:
obj.name = 'rose';
// obj中已經存在了name屬性,所以這樣可以直接修改
obj.age = 10;
// obj中沒有age屬性,所以這樣是在obj中添加了age屬性
獲得對象的屬性值:
使用點語法:直接 對象名.屬性名
后者中括號的方法對象名[屬性名]
就能獲得對象的屬性值了。如果屬性名不存在,則返回 undefined
。
console.log(obj['name']); // rose
console.log(obj.name); // rose
console.log(obj.firstName); // undefined
刪除對象的屬性:
- 假刪除
obj.age = null;
console.log(obj.age); // null
- 真刪除
delete obj.name;
console.log(obj.name); // undefined
JavaScript中對象,類,實例的區別:
- 對象是抽象的概念,是指的一種泛指,js中,萬物皆對象。
- 類是對對象的具體的細分。
- 實例是類中的一個具體的事物。
例如:自然界中也是萬物皆對象,所有的東西都可以具體的細分,可以分為:人類,植物類,動物類,物體類...而每一個人都是人類中的一個具體的實例。
所以對象數據類型還可以再細分:
var obj = {}; // 對象(Object)
var ary = []; // 數組 (Array)
var reg = /^$/; // 正則 (RegExp)
// 時間(Date), 字符串類(String), 布爾類(Boolean), 數學函數(Math) ...等對應的實例:對象、數組、正則、時間...