跳到主要内容

数组空单元

const a = new Array( 3 );
const b = [ undefined, undefined, undefined ];
const c = [];
c.length = 3;


a; // [empty × 3]
b; // [undefined, undefined, undefined]
c; // [empty × 3]
  1. 空单元格:数组的每个元素称为单元格,如果数组中的某个位置没有值,那么该位置就是空单元格。空单元格不等于 undefined,也不等于null,它表示该位置没有任何值。
  2. 创造空单元格的方法:
  • new Array( 3 ):创建一个长度为 3 的数组,数组中的每个元素都是空单元格。
  • Array( 3 ):创建一个长度为 3 的数组,数组中的每个元素都是空单元格,省略了 new 关键字,js 会自动补上。
  • .length:直接设置数组的长度,数组中的每个元素都是空单元格。
  • delete:删除数组中的某个元素,该元素变成空单元格。
  1. 数组的空单元格在遍历时会被跳过,涉及到的数组遍历api有:forEach、map、filter、reduce、every、some、find、findIndex、keys、values、entries、for...of、for...in、Object.keys、Object.values、Object.entries。

**Tips: **

  • 永远不要使用空单元格,它会导致数组的不稳定性,建议使用 undefined 代替。

  • 除非万不得已,不推荐使用Array、Object、Function等构造函数,推荐使用字面量(字面量)的方式创建对象。

  • 如果动态创建正则表达式,可以使用 new RegExp(),其他情况下不推荐使用 new 构造函数。

  • 链接:创建一个长度为100的数组