javascript中数组、关联数组、对象的基本对比


/*
首先对比一下数组
*/
var a = [];                //数组/普通数组/索引数组
a[0] = 1;
a[1] = 2;

//但是我们经常会看到下面这种写法
var c = [];
c["甲"] = "1";
c["乙"] = "2";
//看上去很好, 下标都是中文,一眼就可以看明白

//但是情况真的如此吗? 一个简单的测试
alert(a[0]);   //结果 = 1
alert(c[0]);   //结果 = undefined

alert("a的长度:" +a.length); //结果 = 2
alert("c的长度:" +c.length); //结果 = 0

//为毛啊?这是个啥情况啊?

/*
以上可以看出, c数组和a数组的已经由于下标的变化而导致属性值都变了。
其实这个时候的数组已经变成了“关联数组”, 已经不是普通数组

这就是概念的问题
标准javascript 是内含支持hash关联数组
[ ] 和 {} 中的值是以 , (逗号)分隔
key值是字符串可以不加引号, 但访问的时候需要加
在Javascript语言中,关联数组就是对象,对象就是关联数组。
所以关联数组和数组其实么有啥关系(只是这个名字取的很有艺术性, 为啥不像java里面取个名字叫“map”呢?)


*/

//下面让我们看一下对象
var d = {};
d["甲"] = "1";
d["乙"] = "2";

//和刚才的关联数组对比下
alert(c[0]);   //结果 = undefined
alert(d[0]);   //结果 = undefined
alert(c["甲"]);   //结果 = 1
alert(d["甲"]);   //结果 = 1
alert("c的长度:" +c.length); //结果 = 0
alert("d的长度:" +d.length); //结果 = undefined

//他们真的更像一些
//关联数组和数组貌合神离,概念一定要搞清。
<br />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值