javascript - JavaScript 数组中的空项和未定义项有什么区别?

标签 javascript arrays undefined

<分区>

考虑以下 JavaScript 代码(在节点 REPL 中):

> let a = new Array(10)
undefined
> a
[ <10 empty items> ]
> a.map(e => 1)
[ <10 empty items> ]
> let b = new Array(10).fill(undefined)
undefined
> b
[ undefined,
  undefined,
  undefined,
  undefined,
  undefined,
  undefined,
  undefined,
  undefined,
  undefined,
  undefined ]
> b.map(e => 1)
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
> 

当我创建一个空数组时,我会得到“空项”,其行为似乎与 undefined 不同。有人可以解释一下有什么区别吗?

最佳答案

When I create an empty array, I'll get 'empty items' which seem to behave differently from undefined. Can someone explain what is the difference?

那是因为 Array(10) 没有填充数组。但它只是将 length 属性设置为 10 。因此,使用 Array 构造函数创建的数组只是一个具有 length 属性的对象,但是没有填充任何项目。

关于javascript - JavaScript 数组中的空项和未定义项有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50326047/

相关文章:

javascript - onkeyup 对每一行的出现和计算

javascript - 如何使用node.js 0.12在OSX Yosemite上正确安装node-inspector?

c++ - 存储视频数据的最有效方式

php - in_array() 期望参数 2 是数组,给定整数

python - PYGAME:如何通过按键激活事件

javascript - Mongoose 预保存 bcrypt 未保存

javascript - Jquery获取具有特定数据的所有textarea元素

python - 如何找到 numpy 数组中零元素前面至少有 N-1 个连续零的位置?

c++ - undefined reference ,但已定义

javascript - Node.js - socket.io - 对 io.sockets 的引用突然未定义