成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

檢查 JavaScript 變量是否為數字的幾種方式

開發 前端
當我們打算對數字進行操作時,如果對字符串或數組進行操作會帶來奇怪的結果。在本文中,我們將研究可以幫我們確定所用的變量是否為數字的各種函數。

介紹

JavaScript 是一種動態類型的語言,這意味著解釋器是在運行時確定變量類型的。這允許我們可以用同一變量中存儲不同類型的數據。但是如果沒有文檔和保持一致性,在使用代碼時,我們很有可能并不知道變量究竟是哪種類型。

[[344002]]

當我們打算對數字進行操作時,如果對字符串或數組進行操作會帶來奇怪的結果。在本文中,我們將研究可以幫我們確定所用的變量是否為數字的各種函數。

字符串形式的數字例如 "100" 不應該被處理,同時在 JavaScript中 NaN,Infinity 和 -Infinity 之類的特殊值也都是數字,不過我們將忽略這些值。

根據這些要求,最好使用 Number 對象內置 isFinite() 函數。但是有時候我們也會使用其他函數,例如 Number.isNaN() 和 typeof() 等。

首先創建一些測試變量:

  1. let intVar = 2
  2. let floatVar = 10.5; 
  3. let stringVar = '4'
  4. let nanVar = NaN
  5. let infinityVar = Infinity
  6. let nullnullVar = null; 
  7. let undefinedundefinedVar = undefined; 

使用Number.isFinite()函數

Number.isFinite() 用來函數檢查變量是否為數字,但也用來檢查其是否為某些特殊值。它在遇到 NaN, Infinity 或者 -Infinity 時會返回 false。

接下來在上面定義的變量上進行測試:

  1. > Number.isFinite(intVar); 
  2. true 
  3. > Number.isFinite(floatVar); 
  4. true 
  5. > Number.isFinite(stringVar); 
  6. false 
  7. > Number.isFinite(nanVar); 
  8. false 
  9. > Number.isFinite(infinityVar); 
  10. false 
  11. > Number.isFinite(nullVar); 
  12. false 
  13. > Number.isFinite(undefined); 
  14. false 

結果令人滿意。特殊的數字值以及所有非數字類型的變量都將會被忽略。如果想要檢查某個變量是否為數字, Number.isFinite() 函數是最好的選擇。

使用Number.isNaN()函數

標準的 Number 對象具有 isNaN() 方法。用來判斷傳入的參數值是否為 NaN。由于我們要檢查變量是否為數字,所以需要在檢查中要使用非運算符 !。

現在看看通過非運算符加 Number.isNaN() 函數能否只過濾數字:

  1. > !Number.isNaN(intVar); 
  2. true 
  3. > !Number.isNaN(floatVar); 
  4. true 
  5. > !Number.isNaN(stringVar); 
  6. true # 判斷錯誤 
  7. > !Number.isNaN(nanVar); 
  8. false 
  9. > !Number.isNaN(infinityVar); 
  10. true # 判斷錯誤 
  11. > !Number.isNaN(nullVar); 
  12. true # 判斷錯誤 
  13. > !Number.isNaN(undefinedVar); 
  14. true # 判斷錯誤 

這種方法相當寬松,因為它接受的值根本不是數字。這種方法最適合在你知道自己的值是數字并且要檢查它是否為 NaN 值的情況下,并不適合常規數字的。

使用typeof()函數

typeof() 函數是一個全局函數,它的參數可以接受變量或值,并返回其類型的字符串表示形式。JavaScript 共有 9 種類型:

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

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

  1. > typeof(intVar) == 'number'; 
  2. true 
  3. > typeof(floatVar) == 'number'; 
  4. true 
  5. > typeof(stringVar) == 'number'; 
  6. false 
  7. > typeof(nanVar) == 'number'; 
  8. true # 判斷錯誤 
  9. > typeof(infinityVar) == 'number'; 
  10. true # 判斷錯誤 
  11. > typeof(nullVar) == 'number'; 
  12. false 
  13. > typeof(undefined) == 'number'; 
  14. false 

typeof() 函數比 Number.isNaN() 好得多。它可以正確的判斷 null 和 undefined 不是數字。但如果是 NaN 和 Infinity,它會返回 true。

盡管從技術角度上來說這是正確的,但 NaN 和 Infinity 是特殊的數字值,我們在大多數情況下都會忽略它們。

總結

本文研究了如何檢查 JavaScript 中的變量是否為數字。

  • 只有在我們知道自己的變量是一個數字,并且需要驗證它是否為 NaN 時,Number.isNaN() 函數才適用。
  • 如果你的代碼需要處理 NaN,Infinity 或 -Infinity 及其他數字時,則 typeof() 函數是適用的。
  • Number.isFinite() 方法能夠處理特殊數字,并且最適合我們的要求。

 

責任編輯:趙寧寧 來源: 前端先鋒
相關推薦

2020-10-22 14:00:31

JavaScript數字變量

2020-10-22 08:06:05

JavaScrip語言類型

2020-08-18 08:32:05

JS ES6數組

2020-08-19 08:29:22

JavaScript 對象函數

2011-04-25 11:05:10

javascript

2021-05-07 16:19:36

異步編程Java線程

2010-09-25 14:48:55

SQL連接

2021-01-19 11:56:19

Python開發語言

2021-01-28 07:52:39

JS數組變量

2022-08-25 14:48:11

變量前端

2023-09-07 13:21:00

Linux軟件

2023-02-08 08:43:55

前端繼承原型

2021-06-16 07:02:22

Python方式郵件

2010-11-24 09:56:20

mysql拷貝表

2021-10-07 20:36:45

Redis集群場景

2021-08-02 11:13:28

人工智能機器學習技術

2024-05-10 07:44:23

C#進程程序

2011-06-20 10:36:29

SEO

2025-01-20 00:13:19

TypeScript操作符數據類型

2021-01-06 08:04:30

Linux方式提權
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久新| 女朋友的闺蜜3韩国三级 | 欧美精品一区三区 | 欧美一极视频 | 又黄又爽的网站 | 亚洲综合在线网 | 天天操操操操操 | 一区二区国产精品 | 免费黄色av | 成人av电影在线观看 | av网站在线免费观看 | 亚洲国产精品福利 | 成人精品视频 | 久久99久久99久久 | www.成人.com | 欧美日韩成人网 | 老妇激情毛片免费 | 欧美二区乱c黑人 | 一级电影免费看 | 国产精品久久久久久久久久久免费看 | 中文字幕亚洲视频 | 久久y| 亚洲视频二| 亚洲一区二区三区桃乃木香奈 | 国产精品99久久久久久久久久久久 | 欧美久久久久久久久中文字幕 | 亚洲精品视频在线 | 中文字幕在线视频精品 | 国产小视频精品 | 国产二区在线播放 | 欧美视频三区 | 激情伊人网| 国产亚洲久 | 国产在线观看一区二区三区 | 国产成人在线播放 | 色婷婷综合久久久中字幕精品久久 | 久久婷婷麻豆国产91天堂 | 午夜影院在线观看视频 | 久久噜噜噜精品国产亚洲综合 | 亚洲视频三区 | 国产一区二区三区在线免费观看 |