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的值。