深入NaN

  NaN,意思是Not a Nnmber 。javascript中引入这个数字类型的变量主要的初衷是掌控“将本来要返回数字但是却没有返回数字”的情况。例如当一个数字除以0,在其他很多语言中会导致错误,但是在javascript中会返回NaN。这样可以不影响流程。

  NaN有两个特点,一是任何涉及NaN的操作都会返回NaN,二是NaN不等于任何值,包括NaN本身。

  针对NaN的特点ECMAscript指定了isNaN()函数,用以确定是不是数字。先来看几个例子:

  

  通过例子中我们可以看出,isNaN()会尝试将传入的非数字参数转化成数字类型,当不能进行这样的转化的时候会返回true。

  此外还要强调的一点是isNaN()是可以对对象进行操作的。当参数是对象的时候,会尝试调用对象的valueOf()方法,然后确定返回的值是否可以转换成数值,如果不能在调用toString()方法,再来测试返回值。

  所以总结起来对于isNaN()的操作,基本的流程是这样的:

  

参考文献:javascript高级程序设计

posted @ 2011-03-30 11:32  球尔  阅读(250)  评论(1编辑  收藏  举报