陣列概觀
陣列使用一個變數來收集許多的資料片段。 可使用一個單一索引編號 (用在一維陣列) 或多個索引編號 (用在陣列的陣列或多維陣列) 來參考陣列中的資料。 使用後面方括弧 ([]) 中帶有陣列索引的陣列識別項,您可以參考陣列中的個別元素。 若要將陣列視為整體來參考,只要使用陣列識別項即可。 將資料收集到陣列中可簡化資料管理。 例如,只要使用一個陣列,方法可將名稱清單傳遞到只用一個參數的函式。
JScript 有兩種陣列型別,即 JScript 陣列和具型別陣列。 雖然這兩種陣列很類似,但也有一些不同之處。 JScript 陣列和具型別陣列彼此可以互通。 因此,JScript Array 物件可以呼叫任何具型別陣列的方法和屬性,且具型別陣列可呼叫許多 Array 物件的方法和屬性。 進一步說,接受具型別陣列的函式也接受 Array 物件,反之亦然。 如需詳細資訊,請參閱陣列物件。
具型別陣列
具型別陣列 (也稱為原生陣列) 與 C 和 C++ 這些語言使用的陣列相似。 具型別陣列只儲存與陣列型別宣告所指定型別相對應的資料,因此可提供型別安全性。
注意事項 |
---|
您可以定義 Object 型別的具型別陣列,以儲存任何型別的資料。 |
當指令碼建立或初始化陣列時,會設定型別陣列中的元素數目。 變更元素數目的唯一方法是重新建立陣列。 建立 n 個元素之型別陣列的元素編號為 0 到 n-1。 嘗試存取範圍之外的元素將會產生錯誤。 此外,具型別陣列是緊密的,也就是說在容許範圍內的每個索引都會參考至一個元素。
指令碼可將已宣告的具型別陣列指派給變數或常數,或是將陣列傳遞到函式、運算子或陳述式。 將陣列指派給變數 (或常數) 時,請確定變數的資料型別符合該陣列的型別,並確定和該陣列的維度相符。
型別陣列是 .NET Framework System.Array 物件的執行個體。 若要存取 System.Array 物件的靜態成員,或明確建立 System.Array 物件,需要完整名稱 System.Array。 這個語法將可區分 JScript 內建的 Array 物件。
JScript 陣列
JScript Array 物件比型別物件提供更多的彈性,所以當您想要一個泛型堆疊、一個項目清單以及當效能並非最高考量時,使用起來特別方便。 然而,因為具型別陣列提供了型別安全性、效能改進以及與其他語言有更好的互動,開發人員一般都會選用具型別陣列而不是 JScript 陣列。
JScript 陣列可儲存任何型別的資料,這使它可以更快地撰寫使用陣列的指令碼,而不須考慮型別的衝突問題。 因為這會略過 JScript 所提供的強式型別檢查,請小心使用本功能。
指令碼可動態地在 JScript 陣列中加入或移除元素。 如果要加入陣列元素,請設定一個值到該元素。 delete 運算子可移除元素。
JScript 陣列是疏鬆式的。因此,如果陣列有三個編號為 0、1 和 2 的元素,則可存有元素 50 而不需要元素 3 到 49 的存在。 每個 JScript 陣列有一個 length 屬性,在新增元素時會自動更新。 在以上的範例中,額外的元素 50 會導致長度變數的值變為 51,而不是 4。
JScript Array 物件和 JScript Object 幾乎相同。 兩個主要的差別是在 Object (預設值) 沒有自動長度屬性,且 JScript Object 沒有 Array 的屬性和方法。 如需詳細資訊,請參閱 JScript 陣列物件。