如果忘了对一个Number 型变量初始化,那么这个变量参与的任何数学运算的结果都是NaN;如果最终结果赋值给有声明类型的变量,那么为该变量的默认值(仅限uint ,int)。
var a:Number; //先声明一个没有初始化的Number变量avar b:Number = 10; //再声明一个值为10 的Number变量bvar 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型变量hvar h:uint = b+a; //将不同的a和b 的数学运算结果赋值给它们trace(c); //输出:NaN表示c 也成了一个未初始化的变量trace(d); //输出:NaNtrace(e); //输出:NaNtrace(f); //输出:0:由于f 是int 型,所以变成了int型的默认值0trace(h); //输出:0:同理h也是变成了uint型的默认值0var 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。