這篇文章將為大家詳細(xì)講解有關(guān)JavaScript 中如何判斷變量是否為數(shù)字,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比開封網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式開封網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋開封地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
首先創(chuàng)建一些測(cè)試變量:
let intVar = 2; let floatVar = 10.5; let stringVar = '4'; let nanVar = NaN; let infinityVar = Infinity; let nullnullVar = null; let undefinedundefinedVar = undefined;
使用Number.isFinite()函數(shù)
Number.isFinite() 用來函數(shù)檢查變量是否為數(shù)字,但也用來檢查其是否為某些特殊值。它在遇到 NaN, Infinity 或者 -Infinity 時(shí)會(huì)返回 false。
接下來在上面定義的變量上進(jìn)行測(cè)試:
> 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
結(jié)果令人滿意。特殊的數(shù)字值以及所有非數(shù)字類型的變量都將會(huì)被忽略。如果想要檢查某個(gè)變量是否為數(shù)字, Number.isFinite() 函數(shù)是最好的選擇。
使用Number.isNaN()函數(shù)
標(biāo)準(zhǔn)的 Number 對(duì)象具有 isNaN() 方法。用來判斷傳入的參數(shù)值是否為 NaN。由于我們要檢查變量是否為數(shù)字,所以需要在檢查中要使用非運(yùn)算符 !。
現(xiàn)在看看通過非運(yùn)算符加 Number.isNaN() 函數(shù)能否只過濾數(shù)字:
> !Number.isNaN(intVar); true > !Number.isNaN(floatVar); true > !Number.isNaN(stringVar); true # 判斷錯(cuò)誤 > !Number.isNaN(nanVar); false > !Number.isNaN(infinityVar); true # 判斷錯(cuò)誤 > !Number.isNaN(nullVar); true # 判斷錯(cuò)誤 > !Number.isNaN(undefinedVar); true # 判斷錯(cuò)誤
這種方法相當(dāng)寬松,因?yàn)樗邮艿闹蹈静皇菙?shù)字。這種方法最適合在你知道自己的值是數(shù)字并且要檢查它是否為 NaN 值的情況下,并不適合常規(guī)數(shù)字的。
使用typeof()函數(shù)
typeof() 函數(shù)是一個(gè)全局函數(shù),它的參數(shù)可以接受變量或值,并返回其類型的字符串表示形式。JavaScript 共有 9 種類型:
undefined
boolean
number
string
bigint
symbol
object
null (typeof() 顯示為對(duì)象)
function (對(duì)象的一種特殊類型)
為了驗(yàn)證變量是否為數(shù)字,我們只需要檢查 typeof() 返回的值是否為 "number"。讓我們嘗試一下測(cè)試變量:
> typeof(intVar) == 'number'; true > typeof(floatVar) == 'number'; true > typeof(stringVar) == 'number'; false > typeof(nanVar) == 'number'; true # 判斷錯(cuò)誤 > typeof(infinityVar) == 'number'; true # 判斷錯(cuò)誤 > typeof(nullVar) == 'number'; false > typeof(undefined) == 'number'; false
typeof() 函數(shù)比 Number.isNaN() 好得多。它可以正確的判斷 null 和 undefined 不是數(shù)字。但如果是 NaN 和 Infinity,它會(huì)返回 true。
關(guān)于JavaScript 中如何判斷變量是否為數(shù)字就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。