Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么Chrome devtools在传播我的阵列后会以不同的方式显示它?_Javascript_Arrays_Google Chrome_Ecmascript 6_Google Chrome Devtools - Fatal编程技术网

Javascript 为什么Chrome devtools在传播我的阵列后会以不同的方式显示它?

Javascript 为什么Chrome devtools在传播我的阵列后会以不同的方式显示它?,javascript,arrays,google-chrome,ecmascript-6,google-chrome-devtools,Javascript,Arrays,Google Chrome,Ecmascript 6,Google Chrome Devtools,要创建一个长度为x元素的数组,其中所有元素都没有定义,我使用array(x)函数。如果我将其输入Chrome devtools控制台,它将以如下简写符号显示: 如果然后使用扩展运算符(…)浅层复制此数组,则表示将更改为完整数组打印输出: 如果手动输入数组,也会使用完整的打印输出: 为什么会这样?使用Chrome的未定义×x速记的条件是什么 编辑 在创建undefineds数组之前使用new关键字不会对Chrome的表示产生任何影响: 需要注意的是,没有关于控制台行为的规范或标准,可能的原因

要创建一个长度为
x
元素的数组,其中所有元素都没有定义,我使用
array(x)
函数。如果我将其输入Chrome devtools控制台,它将以如下简写符号显示:

如果然后使用扩展运算符(
)浅层复制此数组,则表示将更改为完整数组打印输出:

如果手动输入数组,也会使用完整的打印输出:

为什么会这样?使用Chrome的
未定义×x
速记的条件是什么

编辑 在创建
undefined
s数组之前使用
new
关键字不会对Chrome的表示产生任何影响:


需要注意的是,没有关于控制台行为的规范或标准,可能的原因是新构造数组的元素与显式分配值(甚至
未定义的
)给数组元素的元素之间存在重要差异。数组基本上跟踪特定单元格是否曾经是分配的目标(扩展语法有效地做到了这一点)。在一些重要情况下,这些单元的处理方式不同,主要涉及
array.prototype
上的各种数组迭代函数。这些(大多数)不会在迭代中包含从未分配的单元

因此,控制台向您显示,使用
array
构造函数和数字参数分配的数组长度为6,但在JavaScript数组意义上它是“空”的,因为没有任何单元格是任何类型分配的目标


同样,不要依赖于控制台的特定输出样式。Firefox和IE可能会显示不同的内容,任何浏览器都可能会一时兴起,在不同的版本之间更改这些输出的外观。

但需要注意的是,没有关于控制台行为的规范或标准,可能的原因是,新构造数组的元素与显式为数组元素指定值(甚至
未定义的
)的元素之间存在重要差异。数组基本上跟踪特定单元格是否曾经是分配的目标(扩展语法有效地做到了这一点)。在一些重要情况下,这些单元的处理方式不同,主要涉及
array.prototype
上的各种数组迭代函数。这些(大多数)不会在迭代中包含从未分配的单元

因此,控制台向您显示,使用
array
构造函数和数字参数分配的数组长度为6,但在JavaScript数组意义上它是“空”的,因为没有任何单元格是任何类型分配的目标


同样,不要依赖于控制台的特定输出样式。Firefox和IE可能会显示不同的内容,任何浏览器都可能会一时兴起,在不同的版本中改变这些输出的外观。

这是新的数组(6)我忘记了我必须使用
new
,但即使我这样做,我仍然会得到相同的输出。我刚刚发现它们是相等的,因为函数数组(){if(this==window)return new Array();},所以我现在很困惑为什么有人对我的错误陈述投了赞成票…:|这是一个新数组(6)我忘了我必须使用
new
,但即使我这样做了,我仍然得到相同的输出。我刚刚发现它们是相等的,因为函数数组(){if(this==window)返回新数组();},所以我现在很困惑为什么有人对我的错误语句进行了投票…:|另请参见“稀疏”与“密集”数组?这很有道理-谢谢!我的问题被标记为的副本也确实有助于澄清问题。另请参见“稀疏”与“密集”数组?这很有意义-谢谢!我的问题被标记为一个真正有助于澄清问题的副本。