在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>
在浏覽器預覽效果如下: