在JavaScript中使用isNaN()函數來判斷一個值是否是NaN值。如果該值為非數字值或NaN值,返回true,否則返回false。那什麼叫NaN值呢?啊,很簡單:
NaN = "Not a Number"(非數字值)
顧名而思義,現在大家都懂了什麼叫NaN值吧。其實數字型數據(整型或浮點型)就不是NaN值,而非數字型(如字符串)就是NaN值。
語法:
isNaN(參數)
說明:
這裡的參數可以是任何類型的數據,例如數字型、字符串型、日期時間型等。不過得注意一點,當參數是“字符串類型的數字”,就會自動轉換為數字型。
例如:
123 //這不是NaN值 "123" //這也不是NaN值,因為“字符串類型的數字”會被自動轉換為數字型 "abc123" //這是NaN值
舉例1:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> document.write("isNaN (123)的執行結果是:"); document.write(isNaN (123)+"<br/>"); document.write("isNaN (3.1415)的執行結果是:"); document.write(isNaN (3.1415)+"<br/>"); document.write("isNaN (0)的執行結果是:"); document.write(isNaN (0)+"<br/>"); document.write("isFinite(\" 學習網\")的執行結果是:"); document.write(isFinite(" 學習網")+"<br/>"); document.write("isFinite(2015/05/03)的執行結果是:"); document.write(isFinite(2015/05/03)+"<br/>"); </script> </head> <body> </body> </html>
在浏覽器預覽效果如下:
使用這個函數的典型情況就是檢查parseInt()方法和parseFloat()方法的返回值。還有一種方法,便利可以與它自身進行比較,如果比較的結果不相等,那麼它就是NaN。這是因為NaN是唯一與自身不等的值。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> var str1 = "test"; var str2 = "test123" var str3 = "5/0"; str1 = parseInt(str1); str2 = parseInt(str2); str3 = parseInt(str3); document.write("str1 = "+ str1 + "<br>"); document.write("str2 = " + str2 + "<br>"); document.write("str3 = " + str3 + "<br>"); if (isNaN(str1) == true) { document.write("str1=" + str1 + " is not a number<br>"); } if (isNaN(str2) == true) { document.write("str2=" + str2 + " is not a number<br>"); } if (isNaN(str3) == true) { document.write("str3="+ str3 + " is not a number<br>"); } </script> </head> <body> </body> </html>
在浏覽器預覽效果如下: