Actionscript3.0用于網站的互動和資料處理。
當面臨一堆資料時,我們很難厘清,我們可以定義變量來給這些資料一一取名。
Var tempText:String="abc";
Trace(tempText);
控制台會正确的輸出abc
Var temText;
trace(temText);
這樣輸出的結果會是undefined,表示沒有給變量指派并沒有找到資料類型。
Var temText:String;
這樣輸出的結果會是null,表示沒有給變量指派。
資料類型:
在Actionscript3.0中,資料類型分為基中繼資料類型和複雜資料類型。
基中繼資料類型:Boolean、int、NULL、Number(主要用于浮點數)、String、uint(非負整數)和void等
複雜資料類型:Object、Array、Date、Error、Function、RegExp、XML、XMLLIST等
看下面的例子:
Var A:uint=100;
Var B:uint=A;
B=500;
trace("A的值:"+A);
trace("B的值:"+B);
控制台輸出結果:
A的值:100
B的值:500
上面是基礎資料類型的,發現最後輸出的A、B值不同,好,下面看複雜資料類型的:
Var _a:Array=new Array(1,2,3);
Var _b:Array=_a;
_b.push(100);
trace("_a的内容為:"+_a);
trace("_b的内容為:"+_b);
輸出的結果是:
_a的内容為:1,2,3,100
_b的内容為:1,2,3,100
發現兩者的結果是一樣。這是因為基礎資料類型可以被看做是一個值,每個值都作為一個不同的對象放在記憶體中,而複雜資料類型的變量名值是給這個資料提供一個引用的方式。也就是說如果将一個數組的變量名作為值賦予另一個數組,則會發生兩個變量同時對應一個數組的情況。我的猜想是基礎資料類型每個值都開辟了一個記憶體空間,而複雜資料類型屬于引用類型,當一個變量名作為值賦予另一個引用類型時,兩者指向同一個記憶體空間。
本文轉自shyy8712872 51CTO部落格,原文連結:http://blog.51cto.com/shuyangyang/986370,如需轉載請自行聯系原作者