ActionScript3.0與Java6.0的不同點 (2)

來源:互聯網
上載者:User

 

1. as 運算子

若要將 obj 轉換為數組,請使用 as 運算子,它將在 obj 為有效數組的情況下返回數組引用,否則返回 null:

 

var obj:Object = [ "a", "b", "c" ];

     

var newArray:Array = obj as Array;

 

trace(newArray == obj); // true

trace(newArray[0]);     // a

trace(newArray[1]);     // b

trace(newArray[2]);     // c

2.實值型別與參考型別

實值型別:直接儲存值。每個變數的值不因其他變數的值的改變而改變。

Exp1.

 

var a :int = 3;

var b: int = a;

b = 9;    //該變b 的值為9

trace(a);  //輸出a 為3,a沒有因為b 的值的改變而變

trace(b);  //輸出 b 為 9

參考型別:儲存引用,指向要操作的對象

Exp2.a1,b1同時指向了數組[1,2,3]

 

var a1:Array= new Array(1,2,3);

trace(a1);    //輸出a1 為1, 2,3

var b1:Array = a1 ;

b1[0] = 5;    

trace(a1);    //輸出a1 為5,2,3,值已經被b1修改了

trace(b1);    //輸出b1 為5,2,3

 

AS3中的基礎資料型別 (Elementary Data Type)是Boolean,int ,Number,String,uint,實值型別也是這麼幾種,除此都是參考型別。

java的的資料類型分有基本類型 和參考型別
基礎資料型別 (Elementary Data Type)有8大:byte,char ,short ,long, int, float ,double, boolean
參考型別有3大:類.介面.數組

AS實值型別也是引用存值。

Java基本類型是直接持有值。

 

3. 三元運算子

test ? expression1 : expression2

test

任何 Boolean 運算式。

test 為 true 時返回的運算式expression1 。可能是逗點運算式。

test 為 false 時返回的運算式expression2 。可能是逗點運算式。

Exp1

 

var a :int = 3;

var b: int  = a;

b = 9;      //改變b 的值為9

trace(a);     //3

trace(b);      //9

(a==5)?trace(a):trace(b)    //9

 

4.typeof , is ,as

var my :String ="I LOVE YOU";

trace (typeof my);        // string。typeof:返回資料類型

trace (my is String);       // true。is:判斷資料類型

trace (my is Number);     // false。不是Number資料類型

trace (my as String);       //I LOVE YOU。as:判斷資料類型,並返回my值

trace (my as Number);     //null。不是Number資料類型,並返回null

 

5.in

判斷一個對象是否作為另外一個對象的鍵(Key)或索引

var a:Array=[1,2,3,4,5];

trace(2 in a);           // true

 

6.delete

刪除對象任意一個執行個體的屬性

Exp

 

var a:Array=[1,2,3,4,5];

trace(a);             //1,2,3,4,5

delete a[2];

trace(a);             //1,2,,4,5

 

7. AS3允許運算式的值不是Boolean值,會自動轉換成相應的Boolean值

 

8.for …in  &  for each …in  枚舉集合的元素

var books:Object = {

         a:"《LOVE IS EVERYTHING》",

         b:"《FUCK YOUR BABY》",

         c:"《I HIT YOU》"

}

for (var k in books){

         trace("key name: "+k+"\t value:"+books[k]);

}

 

/* \t在Regex中是匹配一個定位字元,通過索引值訪問

輸出:

key name: a     value:《LOVE IS EVERYTHING》

key name: b     value:《FUCK YOUR BABY》

key name: c      value:《I HIT YOU》

*/

for each (var k in books){

         race(k);

}

/* 直接存取成員

《LOVE IS EVERYTHING》

《FUCK YOUR BABY》

《I HIT YOU》

*/

 

8.arguments.callee

9. == 與===的區別

10.AS3不支援抽象類別(可用某些技巧實現抽象類別),也不能直接實現單例模式(可以用包外類)

11.AS3不支援方法的重載,可以用…rest實現

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.