数组是批量管理多个数据的存储空间而统一起的一个名字,而对象是程序中描述现实中的一个物体的属性和功能的结构。数组存在的形式是在windows之外的一个空间的引用类型的对象。而windows只是存储了数组的地址值,探究其原理不难看出数值也是属于对象。在JS中一切都是对象。
关联数组是指每个元素自定义的字符串的下标的数组,由于是自定义的下标所以关联数组的length属性没有效果。
那么要遍历关联数组的方法就是,假设data就是关联数组:
var dataCount=0;
for(var key in data ){//key值就关联数组的下标
dataCount++; //通过这种方法我们可以遍历关联数组的下标,获得关联数组的length值
}
而在对象中,相比于关联数组他们有惊人的相似。这里我们可以将关联数组的下标看做是属性,把关联数组的值看做是属性的值,同样,上述方法,假如data是一个对象,那么可以用相同的方法,来遍历对象。我们可以通过这种方法来获得对象对象的属性key,dataCount就可以得到对象中的属性有几个。
这里我们定义一个对象:
var emp={'class1':'chen','class2':'he'};
console.log(emp.class2);//注意在关联数组中行不通
console.log(emp['class2']);
上面两个console出来的结果都是一样的,注意第二个console.log的方法。emp['class2']所用的方法跟数组所用的方法是一样的,都可以用来得到属性值或数据值。对比上面两个console第一种方法有局限性,因为变量名不允许以数字开头,或者变量名不允许包含空格,或变量名不能是关键字。但是用第二种,如emp['1月']或emp['for']都是可以有的,在关联数组中照样适用。