ActionScript3.0与Java6.0的不同点 (2)

 

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中的基本数据类型是Boolean,int ,Number,String,uint,值类型也是这么几种,除此都是引用类型。

java的的数据类型分有基本类型 和引用类型
基本数据类型有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在正则表达式中是匹配一个制表符,通过键值访问

输出:

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实现

 

你可能感兴趣的:(ActionScript3.0与Java6.0的不同点 (2))