length
當(dāng)我們修改數(shù)組的時(shí)候,length 屬性會自動更新。準(zhǔn)確來說,它實(shí)際上不是數(shù)組里元素的個(gè)數(shù),而是最大的數(shù)字索引值加一。
例如,一個(gè)數(shù)組只有一個(gè)元素,但是這個(gè)元素的索引值很大,那么這個(gè)數(shù)組的 length 也會很大:
let fruits = [];
fruits[123] = "Apple";
alert(fruits.length);? ? //124
要知道的是我們通常不會這樣使用數(shù)組。
length 屬性的另一個(gè)有意思的點(diǎn)是它是可寫的。
如果我們手動增加它,則不會發(fā)生任何有趣的事兒。但是如果我們減少它,數(shù)組就會被截?cái)?。該過程是不可逆的,下面是例子:
let arr = [1,2,3,4,5];
arr.length = 2;? ? //截?cái)嗟街皇?個(gè)元素
alert(arr);? ? //[1,2]
arr.length = 5;? ? //又把length加回來
alert(arr[3]);? ? //undefined:被截?cái)嗟哪切?shù)值并沒有回來
所以,清空數(shù)組最簡單的方法就是:arr.length = 0;