JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。
JavaScript的对象用于描述现实世界中的某个对象。例如,为了描述“小明”这个淘气的小朋友,咱们能够用若干键值对来描述他:javascript
访问对象属性java
var xiaoming = { no:18, name: '小明', birth: 1990, height: 1.70, weight: 65 }; alert(xiaoming) //返回object object //【访问对象属性-方法01】 alert(xiaoming.name) //访问属性是经过.操做符完成的 //【访问对象属性-方法02】 alert(xiaoming['name']) //经过中括号,相似数组的访问方式,只是这里不是数字索引,而是字符串索引。 //【特殊状况:】 xiaoming的属性名school不是一个有效的变量,就须要用''括起来。访问这个属性也没法使用.操做符,必须用['xxx']来访问: alert(xiaoming['school'])
添加对象属性数组
//【添加属性】 alert(xiaoming.name) xiaoming.name='柴玉龙' //添加属性就是直接赋值,覆盖原来的值 alert(xiaoming.name) //若是给一个不存在的属性赋值,会如何? 1,会赋值成功,2,位置在最前面; xiaoming.car="英朗" alert(xiaoming.car) //返回 英朗 //使用for in 遍历出对象属性 for (Attr_value in xiaoming){ //alert(xiaoming.Attr_value); // 为何这种方式访问不了???? 由于.操做符后面是跟属性的,不是属性名称, // alert(xiaoming[Attr_value]); // 带括号就能够。对象后面跟中括号,而后跟索引值,不是数组的读取方式么? // //.后面跟属性;[]内为字符串的表达式;------源之权威指南 // } // var x var mycars = new Array() mycars[0] = "Saab" mycars[1] = "Volvo" mycars[2] = "BMW" for (x in mycars) { document.write(mycars[x] + "<br />") //从这个标准范本能够看出,它读的是数组,X变量实际上是替代了索引值的角色 }
删除对象属性测试
//【删除属性】 这里是删除属性和属性值。就整个都不在了。 alert(xiaoming.name) delete xiaoming.name //删除 alert(xiaoming.name) //返回 undefined
判断对象是否含有某属性code
//【判断对象是否含有某属性】 //in 操做符,返回 true 或 false alert('name' in xiaoming ) // 返回 true delete xiaoming.name // 经过删除方法执行后,用in 会返回 false alert('name' in xiaoming ) // 返回 false //下面测试属性值为空的的返回状况 alert('no' in xiaoming ) // 返回 true, no属性是在的,只是没有值而已。
二维对象对象
/******************************以上都是简单的一维对象,下面是较为复杂的多维对象。多尝试用多种方式访问里面的各个值******************************/ var obj ={ right_001:{ name:"高高",tel:"13687871111"}, right_002:{ name:"大柴",tel:"13687872222"}, right_003:{ name:"小柴",tel:"13866001234"} } console.log(obj); //取值 //console.log(obj.right_001) //返回:{name: "高高", tel: "13687871111"} //console.log(obj['right_001']) //返回同上,字符串索引模式查找 //多个点方式深层找值 //console.log(obj.right_001.name) //遍历出--》键 // for (var key in obj) { //特别注意 :遍历的是键 // alert(key) //返回 right_001; right_002; right_003 // } //遍历出--》值 // for (var key in obj) { // alert(obj[key]) // 返回 object object object // console.log(obj[key]) //逐一打印出来: //{ name:"高高",tel:"13687871111"}, //{ name:"大柴",tel:"13687872222"}, //{ name:"小柴",tel:"13866001234"} // } 接上面,若是 console.log(obj[key].name) ,取到name的值。