每個數組都有一個length屬性。和大多數其他語言不同,JavaScript數組的length是沒有上限的。如果用大於或等於當前length的數字作為下標來保存一個元素,那麼length將增大以容納新元素,不會發生數組邊界錯誤。
length屬性的值是這個數組的最大整數屬性名加上1。它不一定等於數組中屬性的個數。例如,下面數組myArray最後長度為10001,但它僅包含一個元素:
var myArray=;
myArray.length//0
myArray[10000]=true;
myArray.length//10001
後綴下標運算符將它的表達式轉換成一個字符串,如果該表達式中有toString方法,就使用該方法的值。這個字符串將用做屬性名。如果這個字符串看起來像一個大於或等於這個數組當前的length且小於4 294 967 295的正整數,那麼這個數組的length就會被重新設置為新的下標加1。根據ECMAScript 262標準,數組的下標必須是大於或等於0且小於232-1的整數。
我們可以直接為數組設置length值。當設置更大的length時,也不用向數組分配更多的空間,而當把length設置為小於數組的實際長度時,將導致所有下標大於或等於新length的元素被刪除。
var numbers=['zero','one','two','three','four','five','six','seven','eight','nine'];
numbers.length=3;//numbers=['zero','one','two']
通過將下標指定為一個數組的當前length,可以附加一個新元素到該數組的尾部。
numbers[numbers.length]='ten'
有時用push方法可以更方便地完成同樣的事情。
numbers.push('ten');