JavaScript中的对象其实就是哈希表,里面存着若干键值对,属性名称就是哈希表的key,而属性的值就是哈希表的值。一个javascript对象,实际上就是一个数组或是映射。
数组和映射的区别在于,数组的数据是并列排序的,映射是无序的,映射使用key来定位其中的成员,而数组使用下标,映射无法使用下标定位,同样数组也无法使用key
映射可以使用类似对象属性的方式来访问(如:m.name),也可以使用带key的[]方式(如:m[‘name’],这是javascript一个特例,看上去像数组,实际上仍是映射);但数组仅能使用下标的方式;
var m = {
name:'keel',
age:5
}
var a = [m,'sss',3];
//以下请求成功定位到name属性
alert(m['name']);
alert(a[0]['name']);//a[0]定位到m
alert(a[0].name);
//以下失败
alert(m[0]);//映射无法以数组下标的方式访问