本篇內容介紹了“JavaScript怎么判斷變量是否為數字”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
首先創建一些測試變量:
let intVar = 2; let floatVar = 10.5; let stringVar = '4'; let nanVar = NaN; let infinityVar = Infinity; let nullnullVar = null; let undefinedundefinedVar = undefined;
使用Number.isFinite()函數
Number.isFinite() 用來函數檢查變量是否為數字,但也用來檢查其是否為某些特殊值。它在遇到 NaN, Infinity 或者 -Infinity 時會返回 false。
接下來在上面定義的變量上進行測試:
> Number.isFinite(intVar); true > Number.isFinite(floatVar); true > Number.isFinite(stringVar); false > Number.isFinite(nanVar); false > Number.isFinite(infinityVar); false > Number.isFinite(nullVar); false > Number.isFinite(undefined); false
結果令人滿意。特殊的數字值以及所有非數字類型的變量都將會被忽略。如果想要檢查某個變量是否為數字, Number.isFinite() 函數是最好的選擇。
使用Number.isNaN()函數
標準的 Number 對象具有 isNaN() 方法。用來判斷傳入的參數值是否為 NaN。由于我們要檢查變量是否為數字,所以需要在檢查中要使用非運算符 !。
現在看看通過非運算符加 Number.isNaN() 函數能否只過濾數字:
> !Number.isNaN(intVar); true > !Number.isNaN(floatVar); true > !Number.isNaN(stringVar); true # 判斷錯誤 > !Number.isNaN(nanVar); false > !Number.isNaN(infinityVar); true # 判斷錯誤 > !Number.isNaN(nullVar); true # 判斷錯誤 > !Number.isNaN(undefinedVar); true # 判斷錯誤
這種方法相當寬松,因為它接受的值根本不是數字。這種方法最適合在你知道自己的值是數字并且要檢查它是否為 NaN 值的情況下,并不適合常規數字的。
使用typeof()函數
typeof() 函數是一個全局函數,它的參數可以接受變量或值,并返回其類型的字符串表示形式。JavaScript 共有 9 種類型:
undefined
boolean
number
string
bigint
symbol
object
null (typeof() 顯示為對象)
function (對象的一種特殊類型)
為了驗證變量是否為數字,我們只需要檢查 typeof() 返回的值是否為 "number"。讓我們嘗試一下測試變量:
> typeof(intVar) == 'number'; true > typeof(floatVar) == 'number'; true > typeof(stringVar) == 'number'; false > typeof(nanVar) == 'number'; true # 判斷錯誤 > typeof(infinityVar) == 'number'; true # 判斷錯誤 > typeof(nullVar) == 'number'; false > typeof(undefined) == 'number'; false
typeof() 函數比 Number.isNaN() 好得多。它可以正確的判斷 null 和 undefined 不是數字。但如果是 NaN 和 Infinity,它會返回 true。
“JavaScript怎么判斷變量是否為數字”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。