快捷搜索:  汽车  科技

数组置空(JavaScript中有关数组的空插槽)

数组置空(JavaScript中有关数组的空插槽)其实这个undefined和空插槽还是有些差别,在使用上要特别注意,看第二段代码。没错,在这里,a [6]将输出未定义的值,但时隙仍为空,而不是未定义的。就如我们看到的,JavaScript引擎将使阵列插槽3至8成为“空插槽”(emptyx6)。那么console.log(a[6])输出什么呢?输出:undefined

点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

今天这篇来搞一个轻松一点话题,就是有关数组的空插槽和undefined我们需要注意些什么。分两段代码来讲

第一段代码如下:

数组置空(JavaScript中有关数组的空插槽)(1)

这段代码我依次给a[0],a[1],a[2],a[9]分别定义三个值1,2,3,99。这样的话数组a会发生什么呢?

先看一下a输出什么:

数组置空(JavaScript中有关数组的空插槽)(2)

就如我们看到的,JavaScript引擎将使阵列插槽3至8成为“空插槽”(emptyx6)。

那么console.log(a[6])输出什么呢?

输出:undefined

没错,在这里,a [6]将输出未定义的值,但时隙仍为空,而不是未定义的。

其实这个undefined和空插槽还是有些差别,在使用上要特别注意,看第二段代码。

第二段代码如下:

数组置空(JavaScript中有关数组的空插槽)(3)

如上面这段代码,先看这个时候b的输出:

b[0]是undefined。除b[3]为2其它都是"空插槽"。这种情况,我们用map来处理一下,看看会发生什么。

数组置空(JavaScript中有关数组的空插槽)(4)

输出结果:

数组置空(JavaScript中有关数组的空插槽)(5)

由此可见,使用map()时,map()的输出中的空插槽将保持为空,但未定义的插槽将使用传递给它的函数重映射。这个地方可以理解为,未定义是已经声明存在,空是没声明不存在。这点区别要记住。

最后总结:

在使用数组时,有关数组的"空插槽"和undefined,务必关注一下。

猜您喜欢: