具有所有元素(第一个除外)undefined的数组返回错误的长度

时间:2014-12-30 01:01:15

标签: javascript arrays

var arr = ["string", , ]
console.log(arr.length)

为什么arr 2的长度而不是3?

1 个答案:

答案 0 :(得分:1)

这是ES3中引入的数组文字的一个特性。

您可以将引号或转发逗号作为“空”元素

所以[,,,,1,2,3,,]将生成一个长度为7的数组,前4个,最后一个元素为空。

如果您将此表达式放入Firefox 34.0.5的控制台中,则会显示

Array [ <4 empty slots>, 1, 2, 3, <1 empty slot> ]

来源:

Are trailing commas in arrays and objects part of the spec?

http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf

第11.1.4节