代码之家  ›  专栏  ›  技术社区  ›  Tonglin

当数组元素中的逗号不影响数组长度时

  •  0
  • Tonglin  · 技术社区  · 7 年前

    ECMAScript 2016 .

    但是

    var a = [b=1,,] console.log(a.length) //2 逗号前面是AssignmentExpression(b=1),缺少的数组元素贡献了长度。我想知道为什么?
    ECMAScript说的不是长度,而是长度。我想知道逗号怎么能 除了在数组的末尾

    1 回复  |  直到 7 年前
        1
  •  3
  •   mc01    7 年前

    逗号 跟随 一个计数元素,它不标志一个的开始。 逗号是数组中的最后一个元素,它是没有意义的,因为前面的元素已经被考虑在内了。

    在数组的末尾 ,该元素不影响数组的长度。

    它还表示数组开头或中间的空元素 贡献数组长度(因为它们 计数的元素,即使它们是空的)。

    如果你只有这个: [,] 之前

    您的示例: var a = [b=1,,] 只有2个元素而不是3个,因为第二个逗号后没有任何元素。第一个逗号后面的空元素起作用,因为它是 在末尾,后跟第二个逗号,表示那里有一个索引,里面什么都没有。就像写作一样 [b=1, undefined]