JavaScript中的"undefined x 1"是什么?

ben*_*qus 26 javascript arrays oop arguments

我正在做一些基于这篇博客文章的小实验.

我正在谷歌Chrome的调试器中进行这项研究,这是困难的部分.

这到底是什么?!

我得到的事实是我无法删除局部变量(因为它们不是对象属性).我知道我可以"读出"从名为'arguments'的数组传递给函数的所有参数.我甚至得到它,我不能删除和数组的元素,只有实现array[0]有一个未定义的值.

有人可以向我解释undefined x 1嵌入式图像的含义吗?

当我覆盖函数foo返回时arguments[0],我得到通常的'正常'未定义.

这只是一个实验,但似乎有趣,有人知道是什么意思undefined x 1吗?

Fel*_*ing 39

这似乎是Chrome在数组(和类似数组的对象)中显示未初始化索引的新方法:

> Array(100)
[undefined × 100]
Run Code Online (Sandbox Code Playgroud)

这肯定比打印更好[undefined, undefined, undefined,...],但不管怎样.

虽然,如果只有一个undefined值,他们可以放弃x 1.

  • 好一个.似乎只适用于*implicit*`undefined`s,例如`new Array(100)`调用它但是`[undefined,undefined]`不会 (5认同)
  • @alex:是的,在这种情况下,索引"0"和"1"实际上存在于数组中.改变了我的回答的措辞. (2认同)

Sla*_*lai 5

较新版本的Chrome使用empty而不是undefined使区别更加明显。

例如,[,,undefined,,]在DevTools控制台中输入将导致:

?(4) [empty × 2, undefined, empty]
   2: undefined
   length: 4
  ?__proto__: Array(0)
Run Code Online (Sandbox Code Playgroud)