现在的位置: 首页 > 综合 > 正文

AS记录(2)

2013年09月05日 ⁄ 综合 ⁄ 共 2644字 ⁄ 字号 评论关闭

09.10.21

字符串:String

这里的字符指的是Unicode字符,比如,每个汉字就是一个Unicode字符。

/n                  换行符

/r                   回车

/t                   指标

/                    转义符

 

数组:Array(一种数据集合)

每个数组中装的都不是数据对象本身,而是指向数据对象的引用。

 

Object作为数据集合,通过字符串来访问成员。

Obj的成员有2种:①属性,用于存放各种数据

                             ②方法,存放函数对象

成员的名字->

成员被称为与这个键对应的值

var foo:Object=new Object();

var bar:Object={};                       //效果一样

 

//写入多个属性,属性名和属性值以“:”号隔开,属性之间以“,”号隔开。

var foo:Obejct={name: "Anson",web: "www.baidu.com"};

trace(foo.name);

//输出:Anson

 

//写入方法

var bar:Object={

                            hello:function(){

                                          trace(“Hello,guys!”);

                            },

                            ok:function():String{

                                          return “that’s ok”;

                            }

                      };

bar.hello();//输出:Hello,guys!

trace(bar.ok());//输出:that’s ok

 

由于上面的例子中,我们确切知道成员的名字,可以直接用点号运算符(.)来添加或访问他们。要动态添加或者访问其中数据,要用到数组运算符([]).

 

var obj:Object={name:”Anson”,number:”08”};

trace(obj.name);//输出Anson

obj[“job”]=”student”;

trace(obj.job);//输出:student

可以看出有2种方法添加和访问Object类对象中的数据

不同类型变量的默认值

int    0

uint  0

Number   NaN

String      null

Boolean   false

Array      null

Object     null

未声明类型    undefined

 

String类型转换成数值类型时,判断String是否能正确转换成数值,不要用

              Number(“string”)==NaN

这样永远返回false,应当使用:

              !(Number(“string”))

 

: trace(!Number("1"));

   //输出false,即Number(“1”)成功将”1”转换成1

trace(!Number("1a"));

//输出true

 

运算符都必须有运算对象才可以进行运算,运算符合运算对象的组合,成为表达式。每个

表达式都产生一个值,就是表达式的值。例:4+3就是一个表达式,值为7.

 

运算符本身是一种特殊的函数,运算对象就是它的参数,运算结果值是它的返回值。

 

相等的概念,我们非常熟悉,一般指两个对象完全一样,我们就说两个对象相等。在AS3中,对于基础数据类型和复杂数据类型,其相等的意思不同。对于基础数据类型,判断值;对于复杂数据类型,判断引用。

 

AS2:

     var a=new Number(5);

     var b=new Number(5);

     trace(a==b);//输出false;

因为AS2中是按引用来判断对象是否相等。

若把②换做:var b=5;或者var b=a;

则会发现输出true,因为它们引用指向同一对象。

 

全等运算符(===)和等于运算符(==

全等运算符不执行类型转换,所以不同类型变量之间比较一定返回false唯一例外,对于数值类型一视同仁,即只要值一样就返回true(对intuintNumber

 

关系运算符(>=,<=,>,<)

非数值的运算对象会尽量转换成数值,如果非数值的运算对象无法换成数值,那么这个表达式的值始终为false

 

逻辑运算符(&&||,!)

使用”&&”,如果第一个表达式返回false,不会执行第二个表达式。

使用”||”,如果第一个表达式返回true,不会执行第二个表达式。

 

三元if-else运算符(?:)

(条件表达式)?(表达式2):(表达式3

 

typeof

用字符串形式返回对象类型

tracetypeof 10;//输出:number

对象类型      返回结果

Array      object

Boolean   boolean

Function  function

int    number

uint  number

Number   number

Object     object

String      string

XML       xml

XMLList xml

 

is判断一个对象是否属于一种类型,返回布尔值

       trace(9 is Number);//输出:true

asis格式一致,内容不同:如果一个对象属于一种类型,那么as返回这个对象,否则返回null.

 

       trace(9 as Number);//输出:9

       trace(9 as Array);//输出:null

 

delete:

作用大大减少,只可以删除对象的动态实例属性,非动态属性不能删除

       若要将一个属性所持有的引用删除,将null赋值给该属性即可。

 

var b:Object={ary:”one”,name:”ok”};

//delete b;报错无法删除固定属性b,只能删除动态定义的属性。要释放相关内存,将其设为

//null

delete b.ary;//成功

trace(b.ary);//输出:undefined

 

b=null;

trace(b);//输出null,那么b变量持有原有对象的引用就删除了

抱歉!评论已关闭.