关于NaN和isNaN

Posted tongguilin

tags:

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

s中的数据类型有几个特殊的,其中NaN就是一个,今天来说一下NaN的特点以及和isNaN的区别。

 

JS中的数据类型:数字(NaN)、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义。

 

一、那么NaN在以下几种情况中会比较特殊:

 

复制代码

 1 <script>

 2 var a = Number(‘abc‘);

 3 // alert( a ); // NaN

 4 // NaN:not a number 不是个 数字 的 数字类型。结果说明:NaN属于数据类型中的数据

 5 

 6 

 7 // alert( typeof (a) ); // number

 8 // 一旦写程序中出现:NaN 肯定进行了非法的运算操作

 9 // alert( ‘200px‘ - 100 );

10 

11 // NaN 是 false

12 if( a ){

13 // alert( ‘真‘ );

14 }else{

15 // alert( ‘假‘ );

16 }

17 //结果说明:NaN在布尔值中是false

18 

19 

20 var abc = [];

21 // alert( abc === abc ); true

22 

23 alert( a === a ); // false

24 // 结果说明:NaN 与自己都不相等!!

25 </script>

复制代码

从上面的分析中得出几个NaN的特点:

 

1、NaN属于数据类型中的数据;

 

2、NaN在布尔值中是false;

 

3、NaN 与自己不相等。

 

二、接下来我们来看看isNaN:

 

isNaN:Is not a number 是不是不是一个数字(不是数字)

 

isNaN(); 是一个方法,它的特点是:

 

1、可以判断某些值是不是数字

2、不喜欢数字、讨厌数字

 

复制代码

1 <script>

3 alert( isNaN(‘250‘) );//返回的结果就是false

5 //isNaN在解析的过程中能解析出来的自行解析若是不能解析的字符串或者其他类型都会“交给” Number()来处理解析,所以就会出现下面的解析过程

6 // Number() ‘250‘ => 250 => false

7 </script>

复制代码

所以在项目中isNaN可以用来判断某些值是不是数字,这种用法会很多。

以上是关于关于NaN和isNaN的主要内容,如果未能解决你的问题,请参考以下文章

关于JavaScript的一些不得不知道的事儿

关于matlab中nan读取的问题

关于js类型转换

js-之NaN和isNaN

输入类型不支持 ufunc 'isnan'

JS中 isNaN() 方法解析