jsES5,6数组的空位处理
什么是数组空位
数组的空位指,数组的某一个位置没有任何值。
比如:Array构造函数返回的一个只有长的数组, 里面自然都是空位。
注意,空位不是undefined,一个位置的值等于undefined,依然是有值的。空位是没有任何值,in运算符可以说明这一点。(其实严格来说, 连下标都木得)
数组的空位处理
forEach(), filter(), reduce(), every() 和some()都会跳过空位。
map()会跳过空位,但会保留这个值
join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
ES6 则是明确将空位转为undefined
- Array.from方法会将数组的空位,转为undefined,也就是说,这个方法不会忽略空位。
- 扩展运算符(…)也会将空位转为undefined
- copyWithin()会连空位一起拷贝。
- for…of循环也会遍历空位。
- entries()、keys()、values()、find()和findIndex()会将空位处理成undefined。