在JavaScript中,數組用關鍵字Array來聲明。聲明數組的同時還能夠指定數組初始元素的大小,也就是數組的長度;下面代碼定義了一個數組長度爲6的數組;數組
var beatles=Array(6);
固然在JavaScript裏面能夠不聲明數組的長度,這徹底是能夠的!下面代碼爲沒有定義長度的數組,理論上你往裏面添加多少元素都沒問題;瀏覽器
var beatles=Array();
分析如下代碼:spa
var array = Array(2); array[0] = "H"; array[1] = "E"; array[2] = "L"; array[3] = "L"; array[4] = "O"; alert(array.length);
這段代碼定義了一個長度爲2的數組,可是實際卻給它添加了5個值,超出開始定義的長度,瀏覽器試運行,輸出5,可是js報錯uncaught exception: out of memory,超出數組定義的長度;code
給數組賦值的方式一共有三種,下面是具體代碼:對象
1.經過數組下標來給數組賦值blog
var array = Array(); array[0] = "H"; array[1] = "E"; array[2] = "L"; array[3] = "L"; array[4] = "O";
2.在聲明數組的同時給數組賦值ip
var array = Array("H", "E", "L", "L", "O");
3.咱們甚至不用明確代表咱們是在建立數組,只需用一對雙括號把各個初始值的初始值括起來就好了;字符串
var array = ["H", "E", "L", "L", "O"];
Important:數組的元素類型;io
1.數組的元素類型沒必要非得是字符串,能夠是數值,能夠使bool值;class
var array = ["A", false, 12, 1245.1]; for (var i = 0; i < array.length; i++) { alert(array[i]); }
依次輸出:A,false,12,1245.1; 他們都是不一樣的數據類型;
2.數組的元素能夠是一個變量;
var param = "change"; var array = ["A", false, 12, param]; for (var i = 0; i < array.length; i++) { alert(array[i]); }
依次輸出:A,false,12,change; 輸出param的變量值;
3.數組的元素能夠是另外一個數組的元素;
var param = "change";
var array = ["A", false, 12, param]; var beatles = ["B", true, 36]; array[0] = beatles[1]; for (var i = 0; i < array.length; i++) { alert(array[i]); }
依次輸出:true,false,12,change; 這裏注意原先的值會被覆蓋A被覆蓋成true;
4.數組的元素還能夠是另外一個數組
var param = "change"; var array = ["A", false, 12, param]; var beatles = ["B", true, 36]; array[0] = beatles; for (var i = 0; i < array.length; i++) { alert(array[i]); }
依次輸出:"B,true,36",false,12,change; 注意若要輸出beatles數組中的某一個元素,代碼以下:
alert(array[0][1]);
總結到這,以前所用到的數組都是傳統數組,每一個元素的下標是一個數字,每次往數組中增長一個元素,下標就加一,若是在填充數據的時候只給出元素的值,這個數組將是一個傳統數組,他的各個元素的下標將被自動建立個刷新;
關聯數組:根據上面的總結得出,咱們能夠經過在填充數組時,爲每一個新元素明確的給出下標來改變這種默認的行爲;在爲新元素給出下標時,沒必要侷限於使用整數,能夠使用字符串,以下代碼所示:
var lenovo = Array(); lenovo["name"] = "聯想"; lenovo["year"] = "1994"; lenovo["living"] = false; alert(lenovo.length);
這就是關聯數組。因爲能夠使用字符串來代替數字值下標,於是代碼更具可讀性,可是這種用法並非一個好習慣,不推薦使用。在JavaScript中,事實上全部的變量都是某種類型的對象,好比一個布爾值,就是一個Boolean類型的對象,一個數組就是一個Array類型的對象。在上面那段代碼中,其實是給lenove數組對象添加了name,year,living,三個屬性;通常狀況下,咱們不該該修改Array對象的屬性;