您的位置:首页 > Web前端 > JavaScript

JavaScript学习日记2 对象

2015-11-02 14:58 477 查看
JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。

JavaScript用一个
{...}
表示一个对象,键值对以
xxx: xxx
形式申明,用
,
隔开。

如:

var xiaoming={name:'小明',birth:1990,school:'No.1 Middle School', height:1.70,weight:65,score:null}


注意:最后一个键值对不需要在末尾加
,
,如果加了,有的浏览器(如低版本的IE)将报错。

访问属性是通过
.
操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用
''
括起来:

如: var xiaoming = {

      name:'小明',

   'Middle School':'No.1 Middle School'

}

xiaoming
的属性名
middle-school
不是一个有效的变量,就需要用
''
括起来。访问这个属性也无法使用
.
操作符,必须用
['xxx']
来访问:

xiaoming['Middle School'] //No.1 Middle School;

xiaoming.name // 小明

也可以用
xiaoming['name']
来访问
xiaoming
name
属性,不过
xiao
ming
.name
的写法更简洁。我们在编写JavaScript代码的时候,属性名尽量使用标准的变量名,这样就可以直接通过
object.prop
的形式访问一个属性了。

由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

如:

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属性也不会报错


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

var xiaoming = {
name: '小明',
birth: 1990,
school: 'No.1 Middle School',
height: 1.70,
weight: 65,
score: null
};
'name' in xiaoming; // true
'grade' in xiaoming; // false


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

要判断一个属性是否是
xiaoming
自身拥有的,而不是继承得到的,可以用
hasOwnProperty()
方法:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: