Javascript中的isNaN函数的介绍与使用

Posted Lydia_zero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript中的isNaN函数的介绍与使用相关的知识,希望对你有一定的参考价值。

NaN "not a number",出现这个数值比较少见,以至于我们可以不用理它。当运算无法返回正确数值时,就会返回"NaN"值。NaN值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至NaN本身也不等于NaN。

isNaN(numValue), 计算一个参数,检查它是否为数值。numvalue就是你要测试的值。

示例1:

检查是否非法:

<script>

document.write(isNaN(123));

document.write(isNaN(-1.23));

document.write(isNaN(5-2));

document.write(isNaN(0));

document.write(isNaN("hello"));

document.write(isNaN("2005/12/12"));

</script>

输出:

false

false

false

false

true

true



示例2:

下面的例子计算floatValue,确定它是否为数值,以便调用相应的过程:

floatValue=parseFloat(toFloat)//如果toFloat为非数值,那么parseFloat运算后的值为NaN,即floatValue=NaN;

if(isNaN(floatValue))

notFloat()

else

ifFloat()

示例3:

比如有个textbox用于录入数字型的数据,在提交表单的时候要验证textbox中的值是否为数据,那么我们可以试用isNaN函数。

function checkValue()

if(isNaN(document.all.textbox.value))

alert("请用数字录入!");

return false;


isNaN的典型使用时为parseInt和parseFloat方法的输入值进行一个提前的检验,但这种简单结果并不好。虽然可能有一些教科书上页这么说,甚至于错误地认为其实一个检查parseInt和parseFloat的返回值,这样是错误的。

parseInt与parseFloat是将一个字符型数字进行一个转化。但自身还有错误处理的,如果你的输入值不是一个数字时,则parseInt和parseFloat返回一个消息:“is not number”,但一般的情况下我们都是对一个数字样式的字符串进行转换的,谁会无聊到转化非数字型的呢?所以你输入的参数是否合格,可以先进行一次isNaN检查的。 

但如果我们有意识的以下行为,事先是不能用isNaN进行检查的,数字开头中间含有字母时,如果用isNaN进行检查是通不过的。

如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。 
两个函数是独立的,并不会谁为谁而生存,isNaN与parseInt/parseFloat并没有关系。

以上是关于Javascript中的isNaN函数的介绍与使用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript系统函数(parseInt()函数parseFloat()函数isNaN()函数eval()函数)

JavaScript系统函数(parseInt()函数parseFloat()函数isNaN()函数eval()函数)

JavaScript - 数值类型的判断与常用转换方式

JavaScript中isNaN()和isFinite()的区别

JavaScript 判断一个字符串是否数字

eval函数和isNaN函数