Javascript中的isNaN函數(shù)使用說明
更新時(shí)間:2011年11月10日 15:52:56 作者:
isNaN函數(shù) 返回一個(gè) Boolean 值,指明提供的值是否是保留值 NaN (不是數(shù)字)。
isNaN函數(shù)
返回一個(gè) Boolean 值,指明提供的值是否是保留值 NaN (不是數(shù)字)。
NaN 即 Not a Number
isNaN(numValue)
必選項(xiàng) numvalue 參數(shù)為要檢查是否為 NAN 的值。
說明
假如值是 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ù)。
function checkValue()
{
if(isNaN(document.all.textbox.value))
{
alert("請用數(shù)字錄入!");
return false;
}
}
isNaN的典型使用是為parseInt和parseFloat方法的輸入值進(jìn)行一個(gè)提前的檢驗(yàn),但這種簡單結(jié)果并不好。雖然可能有一些教課書上也這么說,甚至于錯(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”,但一般的情況下我們都是對一個(gè)數(shù)字樣式的字符串進(jìn)行轉(zhuǎn)換的,誰會無聊到轉(zhuǎn)化非數(shù)字型的呢?所以你輸入的參數(shù)是否合格,可以先進(jìn)行一次isNaN檢查的。
但如果我們有意識的以下行為,事先是不能用isNaN進(jìn)行檢查的,數(shù)字開頭中間含有字母時(shí),如果用isNaN進(jìn)行檢查是通不過的。
如果是一個(gè)空串或是一個(gè)空格,而isNaN是做為數(shù)字0進(jìn)行處理的,而parseInt與parseFloat是返回一個(gè)錯(cuò)誤消息,這個(gè)isNaN檢查不嚴(yán)密而導(dǎo)致的。
兩個(gè)函數(shù)是獨(dú)立的,并不會誰為誰而生存,isNaN與parseInt/parseFloat并沒有關(guān)系。
返回一個(gè) Boolean 值,指明提供的值是否是保留值 NaN (不是數(shù)字)。
NaN 即 Not a Number
isNaN(numValue)
必選項(xiàng) numvalue 參數(shù)為要檢查是否為 NAN 的值。
說明
假如值是 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("請用數(shù)字錄入!");
return false;
}
}
isNaN的典型使用是為parseInt和parseFloat方法的輸入值進(jìn)行一個(gè)提前的檢驗(yàn),但這種簡單結(jié)果并不好。雖然可能有一些教課書上也這么說,甚至于錯(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”,但一般的情況下我們都是對一個(gè)數(shù)字樣式的字符串進(jìn)行轉(zhuǎn)換的,誰會無聊到轉(zhuǎn)化非數(shù)字型的呢?所以你輸入的參數(shù)是否合格,可以先進(jìn)行一次isNaN檢查的。
但如果我們有意識的以下行為,事先是不能用isNaN進(jìn)行檢查的,數(shù)字開頭中間含有字母時(shí),如果用isNaN進(jìn)行檢查是通不過的。
如果是一個(gè)空串或是一個(gè)空格,而isNaN是做為數(shù)字0進(jìn)行處理的,而parseInt與parseFloat是返回一個(gè)錯(cuò)誤消息,這個(gè)isNaN檢查不嚴(yán)密而導(dǎo)致的。
兩個(gè)函數(shù)是獨(dú)立的,并不會誰為誰而生存,isNaN與parseInt/parseFloat并沒有關(guān)系。
相關(guān)文章
javascript設(shè)計(jì)模式 – 職責(zé)鏈模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 職責(zé)鏈模式,結(jié)合實(shí)例形式分析了javascript職責(zé)鏈模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
原創(chuàng)javascript小游戲?qū)崿F(xiàn)代碼
javascript小游戲?qū)崿F(xiàn)代碼,喜歡用javascript實(shí)現(xiàn)游戲效果代碼的朋友可以參考下。2010-08-08
JavaScript函數(shù)式編程(Functional Programming)組合函數(shù)(Composition)用法分析
這篇文章主要介紹了JavaScript函數(shù)式編程(Functional Programming)組合函數(shù)(Composition)用法,結(jié)合實(shí)例形式分析了javascript函數(shù)式編程中組合函數(shù)的概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2019-05-05
深入理解JS中的微任務(wù)和宏任務(wù)的執(zhí)行順序及應(yīng)用場景
JavaScript中的任務(wù)分為宏任務(wù)和微任務(wù),它們的執(zhí)行順序會影響代碼的執(zhí)行結(jié)果。了解它們的機(jī)制可以幫助我們更好地理解事件循環(huán)和異步編程,避免出現(xiàn)一些意想不到的錯(cuò)誤2023-05-05
js中setTimeout()與clearTimeout()用法實(shí)例淺析
這篇文章主要介紹了js中setTimeout()與clearTimeout()用法,以實(shí)例形式分析了setTimeout()與clearTimeout()的功能與使用技巧,需要的朋友可以參考下2015-05-05
javascript小數(shù)計(jì)算出現(xiàn)近似值的解決辦法
在javascript里面,小數(shù)只能進(jìn)行相似計(jì)算,例如:5.06+1.30,你得到的結(jié)果會是6.359999999999999,但有的小數(shù)計(jì)算又是正確的,如果計(jì)算出現(xiàn)了近似值,你可以用如下的方法計(jì)算。2010-02-02

