1.認識數組
數組就是某一類資料的集合,資料型態可以是整數、字串、甚至是對象
Javascript不支援多維數組,但因為數組裡面可以包含物件(數組也是一個物件),所以數組可以透過相互嵌套實現類似多維數組的功能
1.1 定義數組
聲明有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
1.2 多維數組
其實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是隱性聲明,結果都是產生一個多維數組
1.3 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
這是另一種創建物件的方法,結果是一樣的