ECMA Array型別的建立

2021-06-22 09:43:38 字數 2173 閱讀 3864

ecmascript陣列的每一項可以儲存任何型別的資料。也就是說,可以用陣列的第乙個位置來儲存字串,用第二位置來儲存數值,用第三個位置來儲存物件,以此類推。而且,ecma$cript陣列的大小是可以動態調整的。即可以隨著資料的新增自動增長以容納新增資料。

1)、建立陣列的基本方式:

一、使用array建構函式

var colors=new array();
如果預先知道陣列要儲存的專案數量,也可以給建構函式傳遞該數量,而該數量會自動變成length

屬性的值。例如,下面的**將建立length值為20的陣列。

var colors=new array(20);
也可以向array建構函式傳遞陣列中應該包含的項。以下**建立了乙個包含3個字串值的陣列:

var colors=new array("rcd","blue","green");
當然,給建構函式傳遞乙個值也可以建立陣列。但這時候問題就複雜一點了,因為如果傳遞的是數值,則會按照該數值建立包含給定項數的陣列;而如果傳遞的是其他型別的引數,則會建立包含那個值的只有一項的陣列。下面就兩個例子:

var colors=new array (3);//建立乙個包含3項的陣列

var names=new array("greg");//建立乙個包含1項,即字串"greg"的陣列

另外,在使用array建構函式時也可以省略new操作符。如下面的例子所示,省略new操作符的結果相同:

var colors=array(3);//建立乙個包含3項的陣列

var names=array("greg");//建立乙個包含1項,即字串'greg"的陣列

二、使用陣列字面量表示法,如:

var colors=["red","blue","green"]; //建立乙個包含三個字串的陣列

var named=;//建立乙個空陣列

var values=[1,2,];//不要這樣,由於瀏覽器不同會建立乙個包含2或3項的陣列

var options=[,,,,,]; //不要這樣,由於瀏覽器不同會建立乙個包含5或6項的陣列

第三行values展示了在陣列字面量的最後一項新增逗號的結果:在ie中,values會成為乙個包含3個項且每項的值分別為1, 2和undefined的陣列;在其他瀏覽器中,values會成為乙個包含2項且值分別為1和2的陣列。原因是ie8及之前版本中的ecmascript實現在陣列字面量方面存在bug。

2)、 與物件一樣,在使用陣列字面量表示法時。也不會呼叫array建構函式(firefox 3及更早版本除外)

3)、例:

var colors=["red","blue","green"]; //定義乙個字串陣列

alert(colors[0]);// 顯示第一項

colors[2] ="black";//修改第三項

colors[3]="brown"; //新增第四項

alert(colors.length);//4

陣列的length屬性有乙個特點:它不是唯讀的,因此可以通過設定這個屬性從陣列的末尾移除項或向陣列中新增新項。例:

var colors=["red","blue","green"]; //建立乙個包含3個字串的陣列

colors.length=2;//length設定為2會移除最後一項

alert(colors[2]);//undefined

如果將其length屬性設定為大於陣列項數的值,則新增的每一項都會取得undefined值,如:

var colors=; //建立乙個包含3個字串的陣列

colors.length=4;

alert(colors[3]); //undefined

例:直接在第99的位置插入乙個值,那麼99之前的都是undefined

var colors=["red","blue","green"]; 

colors[99]="black";//在第99的位置新增乙個字串

alert(colors.length);//100

使用列舉型別的值建立列舉型別

列舉型別中不僅可以宣告列舉的名稱,還可以加入附加的值如下式 public static enum pushtype public string tostring 其中push type sys稱為列舉的name,0則為列舉型別的value,那如何才能根據列舉型別的value獲取列舉型別的例項呢?見下...

mysql建立索引型別及索引建立的原則

索引型別 unique 唯一索引,一般為主鍵 normal 一般索引,普通字段,可做組合索引 索引方法 btree 1 選擇唯一性索引 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的資訊。如果使用姓名...

vs建立的幾種專案型別

com是一種跨應用和語言共享二進位制 的方法。atl是個模板,用來寫com元件的,如果想學atl程式設計,先學習com程式設計會大有幫助,因為com是基礎。clr是.net的公共語言執行庫 win32是windows程式設計,用的是win32api函式寫程式,win32api是微軟提供的函式,幫助程...