首先我們看看陣列的分類:
從陣列的下標分為索引陣列、關聯陣列
複製程式碼 程式碼如下:
/* 索引陣列,即通常情況下所說的陣列 */
var ary1 = [1,3,5,8];
//按索引去取陣列元素,從0開始(當然某些語言實現從1開始),索引實際上就是序數,一個整型數字
ary1[0];
ary1[1];
ary1[2];
ary1[3];
/* 關聯陣列,指以非序數型別為下標來存取的陣列 python中稱為字典 */
var ary2 = {}; //存取時,以非序數(數字),這裡是字串
ary2["one"] = 1;
ary2["two"] = 2;
ary2["thr"] = 3;
ary2["fou"] = 4;
問題:你可以如下測試:
alert(th); // 返回值為:4
alert(th); //返回值為:0
這是因為什麼呢,因為js是非型別語言,所以js 的任何型別都是object,
比如var arr = [];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr["s"] = 4;
此時你呼叫arr.s相當於是在呼叫arr這個物件的's屬性,但是這是th仍然是3。
總結:關聯陣列雖然可以用字串作下標,但是這個下標是不支援引數傳值的,換言之,你需要什麼就取什麼,聽起來很智慧,實際上你取值仍然需要你手動去寫下標的。