JavaScript学习日记2 对象

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

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

如:

 1 var xiaoming = {
 2     name: '小明'
 3 };
 4 xiaoming.age; // undefined
 5 xiaoming.age = 18; // 新增一个age属性
 6 xiaoming.age; // 18
 7 delete xiaoming.age; // 删除age属性
 8 xiaoming.age; // undefined
 9 delete xiaoming['name']; // 删除name属性
10 xiaoming.name; // undefined
11 delete xiaoming.school; // 删除一个不存在的school属性也不会报错

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

 1 var xiaoming = {
 2     name: '小明',
 3     birth: 1990,
 4     school: 'No.1 Middle School',
 5     height: 1.70,
 6     weight: 65,
 7     score: null
 8 };
 9 'name' in xiaoming; // true
10 'grade' in xiaoming; // false

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

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

原文地址:https://www.cnblogs.com/qdmaomao/p/4930160.html