您好,登錄后才能下訂單哦!
這篇“JavaScript判斷變量是否為數字的代碼怎么寫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。