数组置空(JavaScript中有关数组的空插槽)
数组置空(JavaScript中有关数组的空插槽)其实这个undefined和空插槽还是有些差别,在使用上要特别注意,看第二段代码。没错,在这里,a [6]将输出未定义的值,但时隙仍为空,而不是未定义的。就如我们看到的,JavaScript引擎将使阵列插槽3至8成为“空插槽”(emptyx6)。那么console.log(a[6])输出什么呢?输出:undefined
点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
今天这篇来搞一个轻松一点话题,就是有关数组的空插槽和undefined我们需要注意些什么。分两段代码来讲
第一段代码如下:这段代码我依次给a[0],a[1],a[2],a[9]分别定义三个值1,2,3,99。这样的话数组a会发生什么呢?
先看一下a输出什么:
就如我们看到的,JavaScript引擎将使阵列插槽3至8成为“空插槽”(emptyx6)。
那么console.log(a[6])输出什么呢?
输出:undefined
没错,在这里,a [6]将输出未定义的值,但时隙仍为空,而不是未定义的。
其实这个undefined和空插槽还是有些差别,在使用上要特别注意,看第二段代码。
第二段代码如下:如上面这段代码,先看这个时候b的输出:
b[0]是undefined。除b[3]为2其它都是"空插槽"。这种情况,我们用map来处理一下,看看会发生什么。
输出结果:
由此可见,使用map()时,map()的输出中的空插槽将保持为空,但未定义的插槽将使用传递给它的函数重映射。这个地方可以理解为,未定义是已经声明存在,空是没声明不存在。这点区别要记住。
最后总结:
在使用数组时,有关数组的"空插槽"和undefined,务必关注一下。