永发信息网

js数组,为什么非数字索引的数组时数组的长度为0,非要指定一个数字下标的数组,才显示正确?

答案:1  悬赏:0  手机版
解决时间 2021-11-29 03:34
  • 提问者网友:富士山上尢
  • 2021-11-28 03:50
js数组,为什么非数字索引的数组时数组的长度为0,非要指定一个数字下标的数组,才显示正确?
最佳答案
  • 五星知识达人网友:举杯邀酒敬孤独
  • 2021-11-28 04:19
js数组只支持数字索引,非数字索引指的是对象的属性了。跟你解释一下,这其中的差别,js的数组可以看做是特殊的对象(object),对象的属性有两种表示方法
如var a=Object();
1.a.myattr="lee";
2.a["myattr"]="lee";
1和2是等价的
不过楼主给的两条例子还是比较有探讨性的,先说
var a=new Array();
a['a1']=1;
a['a2']=2;
a.length //输出0
你没有给数组的元素赋值,所以a数组的长度也没有被创建出来,此时a.length自然是0.
var a=new Array();
a['a1']=1;
a['a2']=2;
a[2]=3;
你最后给数组元素a[2]赋值了,此时js会给数组a创建一个长度为3的空间,并在第三个元素中赋以3,但是元素1和元素2都没有赋值,所以此时a[0]和a[1]是没有值的,不信用可以alert一下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯