javacsript

fbeyong 2011-12-03 11:45:37
那位高手指点指点: 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

为啥第一段代码是二呢?
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsw645645645 2011-12-04
  • 打赏
  • 举报
回复
数组也是一个对象。你知道怎么给对象加属性吗?
王集鹄 2011-12-04
  • 打赏
  • 举报
回复
这个结果是3

var aa = [];
aa[3] = 22;
alert(aa.length);
首先:这个结果是4

对于Array类型只有下标是整数或整数字符串的时候才会改变length。

aa['asd']=23; -> aa.asd=23;
这样的赋值只是当成了字段,而非下标。
hetengfei_ 2011-12-04
  • 打赏
  • 举报
回复
aa['asd']=23; // 这个是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());
}
Legend1988 2011-12-04
  • 打赏
  • 举报
回复
学习了。[Quote=引用 1 楼 zswang 的回复:]

这个结果是3

JScript code
var aa = [];
aa[3] = 22;
alert(aa.length);

首先:这个结果是4

对于Array类型只有下标是整数或整数字符串的时候才会改变length。

aa['asd']=23; -> aa.asd=23;
这样的赋值只是当成了字段,而非下标。
[/Quote]
fbeyong 2011-12-04
  • 打赏
  • 举报
回复
var aa = [];
aa[3] = 22;
alert(aa.length);

这个结果咋是四呢?var aa = [];这个没给数组赋值
rainsilence 2011-12-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 fbeyong 的回复:]
那位高手指点指点: 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 ……
[/Quote]

javascript中,所有的Object都是关联数组。
var obj = new Object();
obj["name"] = 123;

Array可以说是特殊的扩展。它允许数组作为下标。
所以你
var aa=[2,3];
aa['asd']=23;
这个时候,用的是作为object的功能,而不是作为array的功能。
youdianluanluan 2011-12-04
  • 打赏
  • 举报
回复
在JavaScrip中,数组的第一个元素下标是0,但作为一种特殊的对象,可以在一个数组上定义非数字的对象属性,并且使用.或[]语法来访问它。因此
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权威指南

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧