JavaScript的对象是一种无序的集合数据类型,由许多的键值对组成,用{...}来表示js中的对象,键值对以,xxx:xxx形势声明,用,隔开,注意最后一个键值对不加,加了后低版本的浏览器将会报错,
示例:
var xiaoming={
name:'小明',
age:20,
school:'武汉大学',
tel:18752354862
}
上述声明了name,age,school,tel四个属性,其对应的值为'小明',20,'武汉大学',18752354862;
在对象赋值给变量后,可以通过访问变量名来获取属性值:
xiaoming.name;//小明
xiaoming.age;//20
xiaoming.school;//武汉大学
xiaoming.tel;//18752354862
这里需要注意,属性值的取值,需要遵循,字符串需要引号来引入,在取值后也会显示引号.
如果属性名称包含特殊字符时,也需要用引号映入.
示例:
var xiaohong = {
name: '小红',
'middle-school': 'No.1 Middle School'
};
这里小红的属性值middle-school不是一个有效的变量就需要用''引入,来访问这个属性,使用['xxx']来访问:
由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:xiaohong['middle-school'];//'No.1 Middle School'
xiaohong['name'];//小红
xiaohong.name;//小红
var xiaoming = {
name: '小明'
};
xiaoming.age; // undefined
xiaoming.age = 18; // 新增一个age属性
xiaoming.age; // 18
delete xiaoming.age; // 删除age属性
xiaoming.age; // undefined
delete xiaoming['name']; // 删除name属性
xiaoming.name; // undefined
delete xiaoming.school; // 删除一个不存在的school属性也不会报错
如果需要检查小明这个对象中是否存在某一属性时,可以使用in操作符:
var xiaoming={
name: '小明',
birth: 1990,
school: 'No.1 Middle School',
height: 1.70,
weight: 65,
score: null
};
'name' in xiaoming;//true
'grad' in xiaoming;//falue
在使用in时需要注意的一点,in查询对象的属性是否存在时,会继承对象的属性值:
'toString' in xiaoming; // true
要判断一个属性是否是对象自身拥有的,而不是继承等到的可以使用hasOwnProperty()方法:
var str={ firstName:'John', lastName:'Doe',
id:2018403, fullname:function(){
return this.firstName+""+this.lastName;
} };