使用JavaScript数组上的经验之谈(2)
http://www.itjxue.com 2015-08-06 23:17 来源:未知 点击次数:
关于动态数组,下面介绍的这个情况也很有意思:
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在处理数组上的细微差别,就会出现类似我之前所犯下的错误。上面提到的内容都是我在实际开发过程中曾经遇到过的问题,借这个机会记录下来,就当是给自己的备忘录了,如果恰好对你有帮助,将不胜荣幸。