Javascript中的isNaN函數(shù)使用
isNaN函數(shù)
返回一個(gè) Boolean 值,指明提供的值是否是保留值 NaN (不是數(shù)字)。
NaN 即 Not a Number
isNaN(numValue)
必選項(xiàng) numvalue 參數(shù)為要檢查是否為 NAN 的值。
說(shuō)明
假如值是 NaN, 那么 isNaN 函數(shù)返回 true ,否則返回 false 。 使用這個(gè)函數(shù)的典型情況是檢查 parseInt 和 parseFloat 方法的輸入值。
還有一種辦法,變量可以與它自身進(jìn)行比較。 假如比較的結(jié)果不等,那么它就是 NaN 。 這是因?yàn)?NaN 是唯一與自身不等的值。
isNaN函數(shù)用法示例:比如我有一個(gè)textbox用于錄入數(shù)字型的數(shù)據(jù),在提交表單的時(shí)候我要驗(yàn)證該textbox中的值是否為數(shù)據(jù),那么我們可以使用isNaN函數(shù)。
復(fù)制代碼 代碼如下:
function checkValue()
{
if(isNaN(document.all.textbox.value))
{
alert("請(qǐng)用數(shù)字錄入!");
return false;
}
}
isNaN的典型使用是為parseInt和parseFloat方法的輸入值進(jìn)行一個(gè)提前的檢驗(yàn),但這種簡(jiǎn)單結(jié)果并不好。雖然可能有一些教課書(shū)上也這么說(shuō),甚至于錯(cuò)誤地認(rèn)為其是一個(gè)檢查parseInt和parseFloat的'返回值,這樣都是錯(cuò)誤的。
parseInt與parseFloat是將一個(gè)字符型按數(shù)字進(jìn)行一個(gè)轉(zhuǎn)化。但自身還有錯(cuò)誤處理的,如果你的輸入值不是一個(gè)數(shù)字時(shí),則parseInt和parseFloat返回一個(gè)消息:“is not number”,但一般的情況下我們都是對(duì)一個(gè)數(shù)字樣式的字符串進(jìn)行轉(zhuǎn)換的,誰(shuí)會(huì)無(wú)聊到轉(zhuǎn)化非數(shù)字型的呢?所以你輸入的參數(shù)是否合格,可以先進(jìn)行一次isNaN檢查的。
但如果我們有意識(shí)的以下行為,事先是不能用isNaN進(jìn)行檢查的,數(shù)字開(kāi)頭中間含有字母時(shí),如果用isNaN進(jìn)行檢查是通不過(guò)的。
如果是一個(gè)空串或是一個(gè)空格,而isNaN是做為數(shù)字0進(jìn)行處理的,而parseInt與parseFloat是返回一個(gè)錯(cuò)誤消息,這個(gè)isNaN檢查不嚴(yán)密而導(dǎo)致的。
兩個(gè)函數(shù)是獨(dú)立的,并不會(huì)誰(shuí)為誰(shuí)而生存,isNaN與parseInt/parseFloat并沒(méi)有關(guān)系。