关于动态数组,下面介绍的这个情况也很有意思:
var ar = [] ar["test"] = 4; ar[3] = 1; var len = ar.length; debugger;
让我们来猜一猜,此时此刻这个数组的大小应该是多少呢?
这段代码建立了一个数组,其中包含数值索引和字符串索引,而且这可以正常工作,无论你使用ar[3]还是ar["test"]都可以得到预期的结果。下面的截图展示了在Firebug中的调试结果:
请注意,数组的长度是4,而此时数组中包含4个数值索引的元素和一个字符串索引的元素。也就是说,字符串索引的元素是不计入数组长度的计算范围的。而取而代之的,字符串索引器实际上作为数组对象的一个扩展属性而存在。Visual Studio JavaScript Debugger更加准确的证明了这点:
从这张截图可以看出,test已经成为array对象的一个属性,和length属性的性质是一模一样的。
本文没有提到什么新内容,但如果不了解JavaScript在处理数组上的细微差别,就会出现类似我之前所犯下的错误。上面提到的内容都是我在实际开发过程中曾经遇到过的问题,借这个机会记录下来,就当是给自己的备忘录了,如果恰好对你有帮助,将不胜荣幸。
本文链接:http://www.blueidea.com/tech/web/2009/6442.asp
出处:七月佑安
责任编辑:bluehearts
上一页 有趣的JavaScript数组 [1] 下一页
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|