javaScript--數組基礎

數組不過是一個具有額外功能層的對象,
用typeof運行符時返回"object"
數組的額外功能是javaScript1.1中引入的
javaScript是無類型語言 一個數組元素可以具有任意數據類型 
同一個數組的不同元素可以具有不同的類型 甚至包含其他數組
1.創建數組
  調用Array()或創建數組直接量
    三種方式調用Array():
 (1)無參調用:                      var a = new Array();     創建無元素的空數組
    (2)指定數組前n個元素值:var a = new Array(5,"testing, testing");
    (3)指定數組長度:              var a = new Array(10);    每個元素值均爲undefined
                                     ( 在NetScape的客戶端JavaScript中, 如果<script>標記的language性質被顯示地設置
                                       爲"JavaScript1.2", 則Array()構造函數默認爲創建length爲1的數組, 並將元素初始化爲
                                       構造函數的參數, 這與ECMAScript標準不同)
  創建數組直接量
  var a = [2, true, 4.78, "Tianjin University"];
     還可以包含對象直接量或其他數組直接量
  var a = [[2, true, 4.78, "String"], [2, {x:3, y:4}]];
2.數組元素的讀寫
  value = a[0];
  a[1] = 3.14;
  a[i] = "Tianjin Unversity";
  a[i+1] = 3;
  a[a[i]] = a[0];
  運算符[ ] 還可用來存取已命名對象的屬性:my[' salary '] * =2;
  對象與數組的本質是相同的 
  數組index值須 (>=0) && (<2的32次方-1) && (整數)
  若index (數字太大) || (負數) || (float) || (bolean) || (object) || (others), JavaScript會將之轉換爲字符串, 用生成
      的字符串作爲對象屬性的名字 而非數組index a[ -1.23 ] = true; 創建了一個attrbute 名爲"-1.23"
3.添加數組新元素
  JavaScript數組中可以具有任意個數的element 可以在任何時刻改變element個數
  添加新元素 只需賦值:a[10] = 10;
  JavaScript數組是稀疏的 index不一定要落在連續範圍內 只有真正存儲在數組中的element才能分配到內存
    a[0] = 1;
    a[1000] = "Tianjin University"; 只有index爲0及1000的element纔可分配到內存 其他999個未分配
  Array element也可以添加到Object中:
 var c = new Circle(1,2,3);
    c[0] = "This is an array element of an object";
    定義了名爲"0"的Object對象屬性 只將Array Element添加到Object中不會使其成爲Array
    由Array() || 由Array直接量創建的Array具有一些Object沒有的特性
4.Array的Length:自動更新
   var a = new Array();             // a.length = 0   ==>未定義Array element
   var a = new Array(10);        // a.length = 10 ==>將0-9的Element定義爲空元素
   var a = new Array(1,2,3);     // a.length = 3  ==>定義0-2的element
   var a = [4,5];                          // a.length = 2   ==>定義element0, element1
   a[5] = "Tianjin University";  //a.length = 6    ==> 定義element0, element1, element5
   a[49] = 0;                               //a.length = 50  ==> 定義element0, element1, element5, element50
   length常用來遍歷array element
   var university = ["Tianjin unversity", "Tianjin", "1895/10/02"];
   for( i=0; i<= university.length; i++ )
   {
        if (university[i] != undefined) //若Array是連續的, 且是從element0開始
        {
            alert(university[i]);
        }
   }
   Array的length既可以讀也可以寫
  若給length設置了一個比它當前值小的值 array將會被截斷
     此長度之外的元素均會被拋棄 它們的值也就丟失了
  若給length設置了一個比它當前值大的值 則新的 未定義的元素就會被添加到數組末尾 以使其增長到指定length
 
  通過設置Array length的Attrbute來截斷數組是惟一一種縮短數組長度的方法
  若用delete來刪除Array中的element 雖然那個元素變成未定義的 但數組的length不會改變
5.多維數組
  JavaScript不支持真正的多維數組 但可以使用element爲array的array
  matrix是一個element爲array的array 其每個element matrix[x]均是一個array
  要取此array中的一個值 就要寫成matrix[x][y]
數組的(length attrbute)&&(array class定義的各種methods)是數組區別於對象的重要特性
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章