length
当我们修改数组的时候,length 属性会自动更新。准确来说,它实际上不是数组里元素的个数,而是最大的数字索引值加一。
例如,一个数组只有一个元素,但是这个元素的索引值很大,那么这个数组的 length 也会很大:
let fruits = [];
fruits[123] = "Apple";
alert(fruits.length); //124
要知道的是我们通常不会这样使用数组。
length 属性的另一个有意思的点是它是可写的。
如果我们手动增加它,则不会发生任何有趣的事儿。但是如果我们减少它,数组就会被截断。该过程是不可逆的,下面是例子:
let arr = [1,2,3,4,5];
arr.length = 2; //截断到只剩2个元素
alert(arr); //[1,2]
arr.length = 5; //又把length加回来
alert(arr[3]); //undefined:被截断的那些数值并没有回来
所以,清空数组最简单的方法就是:arr.length = 0;