关于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可以用来判断某些值是不是数字,这种用法会很多。

猜你喜欢

转载自www.cnblogs.com/tongguilin/p/12216524.html