因为以前felx组件默认是-99999999,后来因为方便组件和数据库的操作,就统一修改Number类型的数据为NAN类型了,然后通过isNaN去判断,而然很多表达式是返回字符串的或者null,要注意isNaN(null)是返回false,而isNaN(NaN)返回true。
返回值定义式: 如果该值为NaN(非数字),则返回true;否则返回false。
参考api文档的说明如下:
public function isNaN(num:Number):Boolean
参数:
num:Number— 要计算的数值或数学表达式。
返回Boolean— 如果该值为NaN(非数字),则返回true;否则返回false。
如果该值为NaN(非数字),则返回true。
isNaN()函数可用于检查一个数学表达式是否成功地计算为一个数字。
NaN值是Number数据类型的特殊成员,用来表示“非数字”值。
注意:
1)含有不能转换成数字的字符才输出true,对于空字符串和空对象(NULL)都能转换,输出false。
2)NaN值不是int或uint数据类型的成员,isNaN(NaN)返回true。
下面是几个例子:
例子一:
public function Test() {
var A:int =1;
var B:Number =3.69;
var C:String ="";
var D:String ="22";
var E:String ="a2";
var F:String =null;
var G:Numer =NaN;
trace(isNaN(A));
trace(isNaN(B));
trace(isNaN(C));
trace(isNaN(D));
trace(isNaN(E));
trace(isNaN(F));
trace(isNaN(G));
}
}
}
//-------------------结果--------------
false
false
false
false
true
false
true
例子二:
下表描述 isNaN()针对各种输入类型和值的返回值。
输入类型/值
例如:
isNaN(0/0)的结果为true
非零数字isNaN(5/0)的结果为false
负数的平方根isNaN(Math.sqrt(-1))的结果为true
大于1或小于0的数字的反正弦isNaN(Math.asin(2))的结果为true
可以转换为Number的字符串isNaN("5")的结果为false
无法转换为Number的字符串isNaN("5a")的结果为true