Javascript学习笔记second day(JS对象)
$ JS对象的声明
var xiaohong = {
name : '小红',
age : 18,
'middle-school' : 'No1' //属性名包含特殊字符,就必须用''括起来:
};
$ 正常属性访问
console.log(xiaohong.name);
$ 访问这种特殊组字符的属性用 [ ]
console.log(xiaohong['middle-school']);
$ 访问不存在的属性不报错,而是返回undefined:
console.log(xiaohong.sex); //undefined:
$ 由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:
xiaohong.sex = '男';
$ 检测xiaohong是否拥有某一属性,可以用in操作符:
var po = 'name' in xiaohong; //打印po为true
$ 如果in判断一个属性存在,这个属性不一定是xiaohong的,它可能是xiaohong继承得到的
var pp = 'toString' in xiaohong; //依旧为true
$ 因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以xiaoming也拥 有toString属性。
要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:
var pq = xiaohong.hasOwnProperty('toString');
for循环的一个变体是for ... in循环,它可以把一个对象的所有属性依次循环出来:
for(var key in xiaohong){
console.log(key);
}
由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for ... in循环可以直接循环出Array的索引:
var arr = ['a','b','c'];
for(var key in arr){
console.log(key);
}
Nice to see you all!