Actionscript3.0用于网站的交互和数据处理。

当面临一堆数据时,我们很难分清,我们可以定义变量来给这些数据一一取名。

 

  1. Var tempText:String="abc"
  2.  
  3. Trace(tempText); 

控制台会正确的输出abc

 

  1. Var temText; 
  2.  
  3. trace(temText); 

这样输出的结果会是undefined,表示没有给变量赋值并没有找到数据类型。

 

  1. Var temText:String; 
  2.  
  3. trace(temText); 

这样输出的结果会是null,表示没有给变量赋值。

 

数据类型:

Actionscript3.0中,数据类型分为基元数据类型和复杂数据类型。

基元数据类型:BooleanintNULLNumber(主要用于浮点数)、Stringuint(非负整数)和void

复杂数据类型:ObjectArrayDateErrorFunctionRegExpXMLXMLLIST

 

看下面的例子

 

  1. Var A:uint=100; 
  2.  
  3. Var B:uint=A; 
  4.  
  5. B=500; 
  6.  
  7. trace("A的值:"+A); 
  8.  
  9. trace("B的值:"+B); 

控制台输出结果:

A的值:100

B的值:500

上面是基础数据类型的,发现最后输出的AB值不同,好,下面看复杂数据类型的:

 

  1. Var _a:Array=new Array(1,2,3); 
  2.  
  3. Var _b:Array=_a
  4.  
  5. _b.push(100); 
  6.  
  7. trace("_a的内容为:"+_a); 
  8.  
  9. trace("_b的内容为:"+_b); 

输出的结果是:

_a的内容为:1,2,3,100

_b的内容为:1,2,3,100

发现两者的结果是一样。这是因为基础数据类型可以被看做是一个值,每个值都作为一个不同的对象放在内存中,而复杂数据类型的变量名值是给这个数据提供一个引用的方式。也就是说如果将一个数组的变量名作为值赋予另一个数组,则会发生两个变量同时对应一个数组的情况。我的猜想是基础数据类型每个值都开辟了一个内存空间,而复杂数据类型属于引用类型,当一个变量名作为值赋予另一个引用类型时,两者指向同一个内存空间。