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)是數組區別於對象的重要特性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.