Actionscript3.0用于网站的交互和数据处理。
当面临一堆数据时,我们很难分清,我们可以定义变量来给这些数据一一取名。
- Var tempText:String="abc";
- Trace(tempText);
控制台会正确的输出abc
- Var temText;
- trace(temText);
这样输出的结果会是undefined,表示没有给变量赋值并没有找到数据类型。
- Var temText:String;
- trace(temText);
这样输出的结果会是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,如需转载请自行联系原作者