代码之家  ›  专栏  ›  技术社区  ›  Varun Sukheja

未定义值的数组

  •  0
  • Varun Sukheja  · 技术社区  · 5 年前

    我无法理解是否有一个空值数组:

    let arr=[,,,];
    

    我试着记录长度,然后得到3而不是4

    let arr=[,,,];
    console.log('length',arr.length);
    console.log('arr[1]',arr[1]);
    1 回复  |  直到 5 年前
        1
  •  2
  •   CertainPerformance    5 年前

    尾随逗号在数组文本中是可选的(至少在现代JS中)。当你有

    [<valid array list>,]
    

    这相当于

    [<valid array list>]
    

    所以

    [,,,]
    

    就像

    [undefined,undefined,undefined,]
    

    The specification 这就是所谓的建设 [ ElementList , Elision(opt) ]

    其中Elision是可选的尾随逗号。

    如果一个元素在数组的末尾被省略,则该元素对数组的长度没有影响。