JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。
【示例一】:
var xiaoming = {
name: '小明',
birth: 1990,
school: 'No.1 Middle School',
height: 1.70,
weight: 65,
score: null
};
JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。
【注意】:最后一个键值对不需要在末尾加,,如果加了,有的浏览器(如低版本的IE)将报错。
【示例二】:
var xiaohong = {
name: '小红',
'middle-school': 'No.1 Middle School'
};
xiaohong的属性名middle-school不是一个有效的变量,就需要用' '括起来。访问这个属性也无法使用.操作符,必须用['xxx']来访问:

也可以用xiaohong['name']来访问xiaohong的name属性,不过xiaohong.name的写法更简洁。我们在编写JavaScript代码的时候,属性名尽量使用标准的变量名,这样就可以直接通过object.prop的形式访问一个属性了。
实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。
JavaScript规定,访问不存在的属性不报错,而是返回undefined
由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:
【示例】:

检测xiaoming是否拥有某一属性,可以用in操作符:

【注意】不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的:

要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:

网友评论