如果忘了对一个Number 型变量初始化,那么这个变量参与的任何数学运算的结果都是NaN;如果最终结果赋值给有声明类型的变量,那么为该变量的默认值(仅限uint ,int)。
var a:Number; //先声明一个没有初始化的Number变量a var b:Number = 10; //再声明一个值为10 的Number变量b var c:Number = a+b; //声明变量c、d、e,分别将不同的a和b的数学运算结果赋值给它们 var d:Number = b-a; var e:Number = a*b; var f:int = b-a; //声明一个int 型变量f 和一个uint型变量h var h:uint = b+a; //将不同的a和b 的数学运算结果赋值给它们 trace(c); //输出:NaN表示c 也成了一个未初始化的变量 trace(d); //输出:NaN trace(e); //输出:NaN trace(f); //输出:0:由于f 是int 型,所以变成了int型的默认值0 trace(h); //输出:0:同理h也是变成了uint型的默认值0 var aa:String=String(a+5); var dd:Object=(a+5); trace(aa,dd) //输出:NaN NaN
当String 类型转换成数值类型时,判断String 是否能够正确转换成数
值,请不要用:
Number("string")==NaN
这样返回的永远都是false。应当使用:
!(Number("string"))
进行一次Boolean 值转换。
Boolean型的默认值是false了。String 型的默认值成了null。Array、Object
和其他一切Flash Player内置类或者用户创建的类默认值都是null。未定义类型
的变量默认值才会是undefined。
如果我们将默认值赋值给不相同的类型,那么会自动转换成被赋值类型的默
认值。如,var b:Boolean = NaN,那么trace(b)得到的结果将是Boolean型的
默认值false。