認識陣列
陣列就是某類別資料的集合,資料型別可以是整數、字串、甚至是物件。
Javascript不支援多維數組,但因為數組裡面可以包含物件(數組也是一個物件),所以數組可以透過相互嵌套實現類似多維數組的功能。
定義陣列
宣告有10個元素的陣列:
var a = new Array(10);
此時為a已經開闢了記憶體空間,包含10個元素,用數組名稱加[下標] 來調用,例如a[2] 但此時元素並未初始化,調用將傳回undefined。
以下程式碼定義了個可變數組,並進行賦值。
var a = new Array(); a[0] = 10; a[1] = "aaa"; a[2] = 12.6;
上面提過了,數組裡面可以放對象,例如下面代碼:
var a = new Array(); a[0] = true; a[1] = document.getElementById("text"); a[2] = {x:11, y:22}; a[3] = new Array();
數組還可以實例化的時候直接賦值,例如:
var a = new Array(1, 2, 3, 4, 5); var b = [1, 2, 3, 4, 5];
a 和b 都是數組,只不過b用了隱性聲明,創建了另一個實例,此時如果用alert(a==b)將彈出false
多維數組
其實Javascript是不支援多維數組的,在asp裡面可以用dim a(10,3)來定義多維數組,在Javascript裡面,如果用var a = new Array(10,3) 將報錯
但是之前說過,數組裡面可以包含對象,所以可以把數組裡面的某個元素再聲明為數組,例如:
var a = new Array(); a[0] = new Array(); a[0][0] = 1; alert(a[0][0]); //弹出 1
聲明的時候賦值
var a = new Array([1,2,3], [4,5,6],[7,8,9]); var b = [[1,2,3], [4,5,6], [7,8,9]];
效果一樣,a採用常規實例化,b是隱性聲明,結果都是產生一個多維數組。
Array literals
這個還真不知中文怎麼叫,文字陣列?
說到數組,不得不說到Array Literals,數組其實是特殊的對象,對像有特有屬性和方法,透過對象名.屬性、對象.方法() 來取值和調用,而數組是通過下標來取值,Array Literals跟數組有很多相似,都是某資料類型的集合,但是Array Literals從根本來說,是個對象,聲明和調用,跟數組是有區別:
var aa = new Object(); aa.x = "cat"; aa.y = "sunny"; alert(aa.x); //弹出cat
創建一個簡單的對象,一般呼叫是透過aa.x,而如果當成Array literals的話,用alert(aa[“x”])一樣會彈出cat
var a = {x:"cat", y:"sunny"}; alert(a["y"]); //弹出sunny
這是另一種創建對象的方法,結果是一樣的
以上是帶你認識javascript的陣列定義和多維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!