【原創】對象完整篇 / 基礎(增刪改) / 一維對象,二維對象 / 遍歷鍵和值

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的值。
相關文章
相關標籤/搜索