JS獲取陣列長度(length屬性)

2020-07-16 10:05:05
在 JS 中獲取陣列長度非常簡單,每個陣列都有一個 length 屬性,該屬性返回陣列的最大長度,即其值等於最大下標值加 1。由於數位下標必須小於 2^32-1,所以 length 屬性最大值等於 2^32-1。

範例1

下面程式碼定義了一個空陣列,然後為下標等於 100 的元素賦值,則 length 屬性返回 101。因此,length 屬性不能體現陣列元素的實際個數。
var a = [];  //宣告空陣列
a[100] = 2;
console.log(a.length);  //返回101
length 屬性可讀可寫,是一個動態屬性。length 屬性值也會隨陣列元素的變化而自動更新。同時,如果重置 length 屬性值,也將影響陣列的元素,具體說明如下:
  • 如果 length 屬性被設定了一個比當前 length 值小的值,則陣列會被截斷,新長度之外的元素值都會丟失。
  • 如果 length 屬性被設定了一個比當前 length 值大的值,那麼空陣列就會被新增到陣列末尾,使得陣列增長到新指定的長度,讀取值都為 undefined。

範例2

下面程式碼演示了 length 屬性值動態變化對陣列的影響。
var a = [1,2,3];  //宣告陣列直接量
a.length = 5;  //增長陣列長度
console.log(a[4]);  //返回undefined,說明該元素還沒有被賦值
a.length = 2;  //縮短陣列長度
console.log(a[2]);  //返回undefined,說明該元素的值已經丟失