JavaScript >> Javascript 文檔 >  >> JavaScript

JavaScript:檢查變量是否為數字

簡介

JavaScript 是一種動態類型語言,這意味著解釋器在運行時確定變量的類型。在實踐中,這允許我們使用相同的變量在相同的代碼中存儲不同類型的數據。這也意味著,如果沒有文檔和一致性,我們在使用時並不總是知道代碼中變量的類型。

當我們期望一個數字時對字符串或數組進行操作會在我們的代碼中帶來奇怪的結果。在本文中,我們將了解各種有助於確定我們使用的變量是否為數字的函數。

不應接受包含諸如“10”之類的數字的字符串。在 JavaScript 中,像 NaN 這樣的特殊值 , Infinity-Infinity 也是數字 - 不過,我們將忽略這些值。

有了這些要求,最好使用的函數是 isFinite() 內置 Number 的函數 對象。

但是,開發人員通常為此使用其他函數,特別是 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() 函數檢查變量是否為數字,但也檢查它是否為有限值。因此,它返回 falseNaN 的數字上 , Infinity-Infinity .

讓我們在上面定義的變量上測試一下:

> 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 .由於我們要檢查變量是否為數字,我們將使用 not 運算符,! , 在我們的檢查中。

現在讓我們檢查 not 運算符和 Number.isNaN() 函數只能過濾數字:

> !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() function 是一個全局函數,它接受變量或值作為參數並返回其類型的字符串表示形式。 JavaScript 共有 9 種類型:

  • undefined
  • boolean
  • number
  • string
  • bigint
  • symbol
  • object
  • null (typeof() 顯示為對象)
  • function (一種特殊的物體)

要驗證變量是否為數字,我們只需檢查 typeof() 返回的值是否 是 "number" .讓我們在測試變量上嘗試一下:

免費電子書:Git Essentials

查看我們的 Git 學習實踐指南,其中包含最佳實踐、行業認可的標準以及隨附的備忘單。停止谷歌搜索 Git 命令並真正學習 它!

> 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 不是數字。但是,它為 NaN 返回 true 和 Infinity .

雖然這是技術上正確的結果,但 NaNInfinity 是特殊的數值,對於大多數用例我們寧願忽略它們。

結論

在本文中,我們學習瞭如何檢查 JavaScript 中的變量是否為數字。 Number.isNaN() 函數只有在我們知道我們的變量是一個數字並且需要驗證它是否具體 NaN 時才適用 或其他。

typeof() 如果您的代碼可以與 NaN 一起使用,則該函數是合適的 , Infinity-Infinity 以及其他數字。

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


Tutorial JavaScript 教程
  1. 如何在 Javascript 中解析 URL 查詢參數?

  2. react中兩個不相關組件之間共享數據的最簡單方法

  3. 如何在換行符上插入 javascript textNode 元素

  4. Ctrl+S 防止 Chrome 中的默認設置

  5. 如何以特定的屏幕分辨率在頁面上顯示特定元素

  6. 捕獲“訪問控制允許來源不允許來源”錯誤

  7. 無法分配給 React useRef 中的只讀屬性“當前”

  1. 如何更改 jQuery DatePicker 控件的彈出位置

  2. 在 Javascript 中切換點擊處理程序

  3. React SketchBoard DevLog #2 - 縮放、修復錯誤並提高代碼質量。

  4. 實用類型:不透明類型以及它們如何拯救火星氣候軌道器

  5. 賽普拉斯——生成令人敬畏的報告

  6. 使用 React 和 Styled-Components 無需大驚小怪的暗模式切換! 🌞↔️🌖

  7. 使用 JavaScript 將過濾器應用於您的視頻

  1. 我是如何通過 JS 獲得驚人的登機牌的。

  2. 我如何讓我的個人網站快 10 倍⚡

  3. 教程:使用 Node.js 構建一個基本的 CRUD 應用程序

  4. React JS PHP 上傳和存儲 Base64 圖片教程