在ECMScript中有一个isNaN()函数,先说一下NaN;
1)NaN:非数值 (not a number),是一个特殊的数值,用来表示本来要返回数值的操作数未返回数值 的情况。在ECMScript中,任何数值除以非数值会返回NaN,不会影响其他代码的执行。
2)NaN有两个特点:
任何与NaN相关的操作都会返回NaN
NaN与任何的值都不相等,而且它与本身也不相等。
3)isNaN()函数
作用:可以接收一个参数,来确定该参数是否“不是数值”。不是数值就会返回true,是数值就会返回false.
流程:当其接收一个参数后,会尝试把这个参数转换为数值,某些不是数值的值也会转换为数值,任何不能被转换为数值的值都会导致这个函数返回true
该函数也适用于对象,但是在对象调用该函数的时候,会先调用该对象的ValueOf()函数,然后确定该方法的返回值是否可以转换为数值,如果不可以,则基于这个返回值再调用toString()方法,再次测试返回值。
测试代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
alert(isNaN(NaN));//true
alert(isNaN(12));//false
alert(isNaN("13"));//false
alert(isNaN("black"));//true
alert(isNaN(false));//false
</script>
</head>
<body>
</body>
</html>