首頁 > web前端 > js教程 > 主體

JavaScript 中判斷變數是否為數字

coldplay.xixi
發布: 2020-10-23 17:06:00
轉載
2746 人瀏覽過

今天JavaScript欄位如何判斷變數是否為數字。

JavaScript 中判斷變數是否為數字

大家都說履歷表沒項目寫,我就幫大家找了一個項目。

簡介

JavaScript 是一種動態類型語言,這表示解釋器在執行時間確定變數的類型。實際上,這也允許我們在相同的程式碼中使用相同的變數來儲存不同類型的資料。如果沒有文件和一致性,我們在使用程式碼時並不總是知道變數的類型。

當我們期望一個變數是數字時,對字串或陣列進行操作可能會在程式碼中導致奇怪的結果。在本文中,我們將會介紹一些判斷變數是否為數字的函數。

像是"10"之類的數字的字串不應被接受。在JavaScript中,諸如NaNInfinity-Infinity之類的特殊值也是數字類型的。

根據這些要求,最好使用的函數是內建Number物件中的isFinite()函數。但是,開發人員通常會使用其他函數,例如Number.isNaN()typeof()函數。

我們先建立一些變數:

let intVar = 2;
let floatVar = 10.5;
let stringVar = '4';
let nanVar = NaN;
let infinityVar = Infinity;
let nullVar = null;
let undefinedVar = undefined;复制代码
登入後複製

使用Number.isFinite() 函數名稱

Number.isFinite()函數檢查變數是否為數字,也檢查其是否為有限值。因此,對於NaNInfinity-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(intVar);
true
> !Number.isNaN(floatVar);
true
> !Number.isNaN(stringVar);
true # Wrong
> !Number.isNaN(nanVar);
false
> !Number.isNaN(infinityVar);
true # Wrong
> !Number.isNaN(nullVar);
true # Wrong
> !Number.isNaN(undefinedVar);
true # Wrong复制代码
登入後複製

這個方法是相當寬鬆的,因為它接受根本不是數字的值。這種方法最適合當你知道你有一個數字並且要檢查它是否是一個NaN值時,而不是一般的數字檢查。

使用 typeof() 方法

typeof()函數是一個全域函數,它接受變數或值作為參數,並傳回其類型的字串表示。 JavaScript 總共有9種型別

  • undefined
  • #boolean
  • number
  • string
  • bigint
  • symbol
  • object
  • null (typeof() 顯示的是object)
  • function (一種特殊類型的object )

為了驗證變數是否為數字,我們只需要檢查typeof()傳回的值是否為`"number"。讓我們試試看測試變數:

> typeof(intVar) == 'number';
true
> typeof(floatVar) == 'number';
true
> typeof(stringVar) == 'number';
false
> typeof(nanVar) == 'number';
true # Wrong
> typeof(infinityVar) == 'number';
true # Wrong
> typeof(nullVar) == 'number';
false
> typeof(undefined) == 'number';
false复制代码
登入後複製

typeof()函數的效能比Number.isNaN()好得多。它正確地確定了字串變數nullundefined不是數字。但是,對於NaNInfinity,它傳回true

儘管從技術上來說這是正確的結果,但NaNInfinity是特殊的數字值,對於大多數使用情況,我們寧願忽略它們。

總結

在本文中,我們學習如何檢查JavaScript中的變數是否為數字。 Number.isNaN()函數僅在我們知道變數為數字並且需要驗證它是否為NaN`時才適用。

如果程式碼中有NaNInfinity-Infinity以及其他數字,則    typeof()`函數適用。

Number.isFinite()方法捕捉所有有限數,是最適合我們的要求。


程式碼部署後可能存在的BUG沒辦法即時知道,事後為了解決這些BUG,花了大量的時間進行log 調試,這邊順便給大家推荐一個好用的BUG監控工具Fundebug。

相關免費學習推薦:javascript(影片)

#

以上是JavaScript 中判斷變數是否為數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.im
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!