1. 程式人生 > >關於NaN和isNaN

關於NaN和isNaN

很多 布爾值 接下來 數字類型 not 理解 == 運算 number

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可以用來判斷某些值是不是數字,這種用法會很多。

好了,今天就寫到這裏,明天繼續!

關於NaN和isNaN