【原创】对象完整篇 / 基础(增删改) / 一维对象,二维对象 / 遍历键和值

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的值。
相关文章
相关标签/搜索