jsES5,6数组的空位处理

什么是数组空位

数组的空位指,数组的某一个位置没有任何值。
比如:Array构造函数返回的一个只有长的数组, 里面自然都是空位。

jsES5,6数组的空位处理

注意,空位不是undefined,一个位置的值等于undefined,依然是有值的。空位是没有任何值,in运算符可以说明这一点。(其实严格来说, 连下标都木得)
jsES5,6数组的空位处理

数组的空位处理

forEach(), filter(), reduce(), every() 和some()都会跳过空位。

map()会跳过空位,但会保留这个值

join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
jsES5,6数组的空位处理

ES6 则是明确将空位转为undefined

  1. Array.from方法会将数组的空位,转为undefined,也就是说,这个方法不会忽略空位。
  2. 扩展运算符(…)也会将空位转为undefined
  3. copyWithin()会连空位一起拷贝。
  4. for…of循环也会遍历空位。
  5. entries()、keys()、values()、find()和findIndex()会将空位处理成undefined。

jsES5,6数组的空位处理