【问题标题】:javascript array empty and undefinedjavascript数组为空且未定义
【发布时间】:2021-11-09 09:20:05
【问题描述】:

我对数组中的空和未定义有疑问

请在底部查看我的代码

const arr = []
arr[1]=1
arr[2]=2
arr[3]=3
arr[5]=5
console.log(arr[4])// console: undefined
console.log(arr)// console: [empty, 1,2,3,empty,5]

所以我不明白两个 colsole 结果之间的区别

为什么console.log(arr[4])未定义,而console.log(arr)的索引4为空?

请帮帮我,谢谢

【问题讨论】:

  • 这只是控制台向您显示“空”符号,因此您可能知道未将显式“未定义”推送到数组中,但您没有为同一索引输入任何内容。因此,如果您检查arr[4] === '',它将返回错误,如果您检查arr[4] === undefined,它将返回true
  • 欢迎来到 Stack Overflow!我只是想指出,在 Stack Overflow 中不鼓励使用“谢谢请帮助”短语,如果可以,这里的人会提供帮助,因此无需添加“帮助”语句。顺便问下好问题,祝你有美好的一天! :D

标签: javascript arrays


【解决方案1】:

当您读取一个不存在的属性时,您会得到值undefined。那是标准的 JS。

当您记录整个数组时,您并未显式读取属性,因此控制台有助于区分“没有值”和“显式具有 undefined 值”。

【讨论】:

    【解决方案2】:

    empty这个词是浏览器控制台界面添加的。

    未分配数组元素的正确状态是undefined - 当您尝试访问它时,这是由 JS 提供给您的。除此之外,未分配的数组元素的解释受制于解释它的系统。

    这里有一些例子:

    let arr = new Array(2);
    
    console.log(arr[0]);    //undefined
    
    console.log(arr);       //In SO - [undefined, undefined]. In browser [empty x 2]    
    
    console.log(JSON.stringify(arr));   // [null, null]

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      相关资源
      最近更新 更多