isNaN解盲

来源:互联网 发布:淘宝卖家购物车怎么看 编辑:程序博客网 时间:2024/05/21 04:19

因为以前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