JavaScript 数组的空位
2019-08-13 本文已影响4人
小小_绿
数组的空位指,数组的某一个位置没有任何值。
声明数组为 ,Array构造函数返回的数组都是空位。
空位不是undefined,而是没有任何值;一个位置的值等于undefined,依然是有值的
Array(2) // [, ,]
ES5 对空位的处理,大多数情况下会忽略空位。
- forEach(), filter(), reduce(), every() 和some()都会跳过空位。
- map()会跳过空位,但会保留这个值
- join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
ES6 则是明确将空位转为undefined。
不会忽略空位:将空位转为undefined
- Array.from方法
- 扩展运算符(...)
- entries()
- keys()
- values()
- find()
- findIndex()
其他处理:
copyWithin()会连空位一起拷贝;
fill()会将空位视为正常的数组位置;
for...of循环也会遍历空位;
map方法遍历数组,空位直接跳过。