isNaN几种情况

NaN

NaN是number类型中一个特殊的数值,在JavaScript中它有个奇怪的定义:非数值(Not a Number),即是一个不是数字的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。

在其他语言中,任何数值在未返回都会得到错误,但在JS中,会返回NaN,这样它就不会抛出错误了,继续解析执行接下来的代码。

console.log(typeof NaN); //返回Number

NaN的特点

1.任何数值除以非数值(字符串、undefined、object)都会返回NaN。

var div = document.getElementById("div");
console.log("aaaaa"/3); //返回NaN
console.log(undefined/ 5 ); //返回NaN
console.log(div / 1); //返回NaN

注意:
1.1**Boolean**和Null(关于Null的解释在介绍isNaN函数会提到)因为在过程中会自动转换成number类型,所以会得到正确的数字。
2.NaN与任何值都不相等,包括NaN自身。

console.log(NaN == NaN); //返回false
console.log(NaN === NaN); //返回false
console.log(NaN == -1); //返回false

isNaN()方法

该函数接收一个参数,这个参数可以是任何类型,如果接收的参数是数字类型,返回false;如果是其他类型(除了数字的任何其他类型),则返回true;
注意:

1.该方法在接收参数后,如果传入的参数类型不是数字类型,会尝试将该参数转换为数字类型,以下有代码例子。
2.如接受的参数是空,比如[](空数组)、“”(空字符串)等,会在过程中转换为数字类型的0,从而返回false;
3.如果传入的参数为Null,也会返回false,但我个人用类型转换方法转换Null的时候,会将null转换为NaN,根据国外StackOverFlow论坛中的答主解释,在isNaN函数里,null是空值,就是0,所以会返回false。参考网址:http://stackoverflow.com/questions/115548/why-is-isnannull-false-in-js

console.log(isNaN(100)); //返回false
console.log(isNaN("100")); //字符串“100”被转换为数字100,所以返回false
console.log(isNaN("aaa")); //返回true
console.log(isNaN(true)); //true转换为数字1,所以返回false
console.log(isNaN("")); //空值会被转换为0,所以返回false
console.log(isNaN(NaN)); //返回true
console.log(isNaN([])); //空值会被转换为0,所以返回false
console.log(isNaN(null)); //null会被转换成0,所以返回false

--------- 

作者:a895865025
来源:CSDN
原文:https://blog.csdn.net/a895865025/article/details/63004180
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自www.cnblogs.com/qianphong/p/10429933.html