关于NaN和isNaN

js中的数据类型有几个特殊的,其中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>
2 
3 alert( isNaN('250') );//返回的结果就是false
4 
5 //isNaN在解析的过程中能解析出来的自行解析若是不能解析的字符串或者其他类型都会“交给” Number()来处理解析,所以就会出现下面的解析过程
6 // Number()  '250' => 250 => false
7 </script>

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

好了,今天就写到这里,明天继续!

posted @ 2017-12-01 21:04  麦兜家园  阅读(3483)  评论(0编辑  收藏  举报