基础-AS3数据类型

来源:互联网 发布:幼儿园大班美工课作品 编辑:程序博客网 时间:2024/05/19 10:15

1. 基元数据类型

1.1 处理数字

1.1.1 int:默认0;4字节,有符号的32位整数,范围从-2 147 483 648~2 147 483 648;

1.1.2 uint:默认0;4字节,无符号32位整数,范围从0~4 294 967 295;

1.1.3 Number:默认NaN;8字节,64位浮点值;

1.2 String:默认null;有由一串字符组成,这里的字符是unicode字符;

1.3 Boolean:默认false;可使用非Boolean值的表达式作为判断条件,会自动使用默认值或者进行类型转换;


2. 复杂数据类型

2.1 Array:

2.2 Date:

2.3 Error:

2.4 Function:

2.5 RegExp:

2.6 XML:

2.7 XMLList:


3. 变量声明

3.1 必须使用var关键字,并且指定类型,若未指定,默认是untyped,形如:var i; 或者 var i:*;

3.2 正确声明:var i:int; 设置默认值:var i:int=1;

3.3 未声明类型的变量,默认值都是undefine

3.4 若Number类型变量a没有初始化,那么这个变量a参加数学运算返回的结果也是NaN,但是如果将运算结果返回给int或unit类型变量b,那么这是输出b,b的值是0,即是输出的是b的默认值0. 

3.5 Number将给定值转换成数字值。下表显示各种输入类型的结果:输入类型/值示例返回值undefinedNumber(undefined)NaNnullNumber(null)0trueNumber(true)1falseNumber(false)0NaNNumber(NaN)NaN空字符串Number("")0转换为数字的字符串Number("5")数字(例如 5)没有转换为数字的字符串Number("5a")NaN
所以可以使用Number判断String类型数据能否转化为数值:if(!Number("str")){...}


4. 值类型和引用类型变量的区别

4.1 值类型

4.1.1 AS3中值类型的有int、uint、Number、String、Boolean.

4.1.2 值类型变量不用new来创建,必须用new创建的不是值类型变量

4.1.3 值类型变量直接存值,每个变量的值不会随其他变量的值改变而改变。

4.2 引用类型

4.2.1 变量持有引用,引用指向要操作的对象(引用也是一种数据类型,类似于C语言的指针,指示对象在内存中的地址)

4.2.2 两个引用指向同一个对象,改变任何一个引用所指向对象的值,另一个引用的值也会随之改变


5. 基元数据类型的深入探讨

5.1 与Java不同,AS3的值类型本质上仍是对象,是一种不变对象,即是一旦建立就不会改变,每次操作返回新的对象。

5.2 不变对象机制,使得基本数据类型的执行效率较高

5.3 在ActionScript 3.0 中,所有的参数均按引用传递,因为所有的值都存储为对象。基元型数据是不变的对象,按按值还是按引用的效果一样,通常可以看作是按值传递。按值传递,就是指参数被传递给函数后,被传递的变量就独立了。若在函数中改变这个变量,原变量不会发生任何的变化。


6. 声明常量

6.1 使用const关键字,一经赋值,不可更改(对于值类型,常量持有的就是值;对于引用类型,常量持有的就是引用,只保证持有的引用不变,不保证引用对象自身状态的不变。)

6.2 var声明变量,const声明常量。二者互斥。


7. 常用数据类型

7.1 所有基本数据类型:Boolean、int、uint、Number、String

7.2 两种复杂类型:Array、Object


8. int/uint/Number数据类型运算问题

8.1 整数有正负之分优先使用int;处理正整数/颜色相关的值优先使用unit;可能会碰到小数点时使用Number;

8.2 使用uint时,不要使运算结果出现负数;

8.3 整型数除以整型数,得到的仍是整型数;浮点数与整型数的除法运算,会得到浮点数;

8.4 不要让数值差距过大的浮点数相加减,结果可能有偏差,可使用Math.round( )来修正。


9.使用通配符*定义无类型变量

*表示该数据类型未知,必须等到运行时才知道,或者可以接受多种类型的数据。要创建根据参数的数据类型而表现出不同行为的函数,通配符是很有用的。但是使用这种类型时需要格外小心,因为这些变量不具备强类型检查,并且运行结果可能是不可预知的。