那位高手指点指点: var aa=[2,3];
aa['asd']=23;
window .alert (aa.length)这个结果是2
//加了aa['asd']=23后
var aa=[2,3];
aa['asd']=23;
aa[3]=22;
window .alert (aa.length )
这个结果是3为啥第一段代码是二呢?
aa['asd']=23;
window .alert (aa.length)这个结果是2
//加了aa['asd']=23后
var aa=[2,3];
aa['asd']=23;
aa[3]=22;
window .alert (aa.length )
这个结果是3为啥第一段代码是二呢?
aa[3] = 22;
alert(aa.length);
首先:这个结果是4对于Array类型只有下标是整数或整数字符串的时候才会改变length。aa['asd']=23; -> aa.asd=23;
这样的赋值只是当成了字段,而非下标。
aa[3] = 22;
alert(aa.length);这个结果咋是四呢?var aa = [];这个没给数组赋值
如:
var AA = function(){
this.asd=23;
};
var aa=new AA();
aa['asd']=23; 要如下才能取得
for(var v in aa)
{
alert("Key:"+v.toString()+"Value:"+aa[v].toString());
}
var aa=[2,3];
aa['asd']=23;
window .alert (aa.length)
这个结果是2
var aa=[2,3];
aa['asd']=23;
aa[3]=22;
window .alert (aa.length )
这个结果是3
建议楼主看看JavaScrip权威指南
javascript中,所有的Object都是关联数组。
var obj = new Object();
obj["name"] = 123;Array可以说是特殊的扩展。它允许数组作为下标。
所以你
var aa=[2,3];
aa['asd']=23;
这个时候,用的是作为object的功能,而不是作为array的功能。