`
kino
  • 浏览: 103015 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

as3备忘五-变量

    博客分类:
  • flex
阅读更多

1、用var声明变量,用:指定变量类型,若不指定类型,严格模式下会出现编译错误。正确的如如var v:int=1;

 

2、与java不同的是,在as3中,变量没有块级作用域(即两人大括号中间),如果在一个块内声明了一个变量,比如一个for循环内声明了一个变量,它在该代码所在整个函数内都是可访问的。 如:

function myFunction():void{
       for(var i:int=0;i<5:i++){
             var last:int = i;
        }
       trace(last);
}

 看上面的代码,变量last虽然是在for代码块内部声明的,但在代码块外部也是可以访问的,只要不超出函数体。

 

3、 何为“提升”?as3会把所有的声明提到函数体的顶部。也就是说你可以使用一个变量,只要这个变量在函数体内被声明过,但不在乎它声明的位置,哪怕是在函数体的结尾。或者可以说,变量是可以先使用再声明的,这是从代码表面来看的,因为内部机制来说,as3会把所有的声明放到函数体的顶部执行,实际上还是先声明再使用的。 如:

function myFunction():void{
     trace(num);         // NaN
     var num:Number=10;  
     trace(num);         //10
} 

上面的代码也是合法的。但是第一个trace(num)会生成NaN,这是因为编译器只会提升声明,而不会提升任何赋值语句。 第二个trace(num)生成10.你也可以先赋值再声明,如:

function myFunction():void{
     num=5;
     trace(num);       //5
     var num:Number=10;
} 

 

 

4、无类型变量。 声明一个变量时如果指写它的类型为*,它就是无类型变量,也是变量的默认类型,即如果声明一个变量,但没指定它的类型,它的类型就是*。下面的两个变量都是无类型变量:
var aa;
var bb:*;
 
5、当声明一个变量,但没有赋值时,系统会为它分配一个默认值,不同类型的变量默认值是不同的。
数据类型                                 默认值

Boolean                                false
int                                         0
Number                                 NaN
Object                                   null
String                                    null
uint                                       0
未声明(与类型注释 * 等效)     undefined
其它所有类(包括用户定义的类)null
  •  无类型变量的默认值是undefined
  • Boolean、int、Number、uint之外所有类型变量的默认值都是null。而将undefined赋值给这部分变量时,赋的值就会转换成null.
  • null对 Boolean、int、Number、uint这四种类型变量是无效的,当将null赋值给这四种类型变量时,会将null值转换为它们对应的默认值。如:
    var i:int;
    i = null;
    trace(i);           //0
    如i的值还是为0;
本文地址:http://kino.iteye.com/blog/235533 ,转载请注明,谢谢!
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics