divPhoto by 🇨🇭 Claudio Schwarz | @purzlbaum on Unsplash
The oneワンライナー
私はワンライナーが大好きです。 コメントで文書化する必要があると思いますが、派手なだけではなく、実は本当に便利なものだと思います。
ここでは、JavaScriptで数値をチェックする方法のワンライナーを紹介します。
しかし、JavaScriptで有限の数をチェックするには、もっと良い方法があります。ヘルパー関数のNumber.isFinite()
isNumber()
関数と同じ動作をします。 次のセクションで例を示します。
最も簡単な数の確認方法。 しかし、JavaScriptの値であるInfinity
-Infinity
NaN
がすべて数字のプリミティブ型であることを覚えておくのは有益な方法です。
“Number.isFinite()
メソッドは、渡された値が有限の数であるかどうかを判断します。” – MDN Docs
Number.isFinite()
true
を返します。
Infinity
-Infinity
NaN
と、まさに欲しいものが返ってきます。
また、グローバルな isFinite()
関数もあり、上記のように型の強制(文字列を数字に強制するなど)を行います。
これらの方法については、「The Startup」のInfinity
の記事で詳しく説明しています。
変数が整数であるかどうかの確認
変数Aが整数であるかどうかを確認するには、緩い等号演算子==
を使って、解析された値が自分自身と等しいかどうかを確認することができました。
次のコードスニペットは、整数であるかどうかをチェックする方法の例を示しています。
typeof
===
と同様に、数値に強制されている文字列と実際の数値を区別することができます。
JavaScriptは実際に整数を分けているのでしょうか?
いいえ、JavaScriptには1種類の数値しかなく、内部的には64ビットの浮動小数点で表現されています。
グローバル関数であるparseInt()
parseFloat()
は、期待するものと出力するものが異なりますが、実際にJavaScriptで整数型と浮動小数点型が別々に存在するからではありません。
Photo by Volkan Olmez on Unsplash
Conclusion
JavaScriptで数値をチェックすることは特に複雑ではありません – typeof
NaN
Infinity
typeof
の数字を持っていることを認識していれば、基本的にはその通りに動作します。
有限の数をチェックする最も簡単な方法は(つまり NaN
Infinity
Number.isFinite()
isFinite()
を使用することです。
具体的には、parseInt()
==
===
(両方の値が数字の場合にのみ true を返します) を使用して、解析された値を自分自身と比較します。
裏を返せば、整数も浮動小数点も同じです。JavaScriptには、数値の種類は1つしかなく、数値プリミティブ型です。
Photo by K. Mitch Hodge on Unsplash. Mitch Hodge on Unsplash
Further reading
- 関数
Number.isInteger()
は文字列を数字にcoerceしない:
- Sumit Kumar Pradhan氏は、Dev.C++で数字をチェックすることについて書いています。to:
- Chris Ferdinandi氏がvanilla JSブログで数字の解析について議論しています:
- 正規表現の
^+(\.{1,2})?$
はお金にマッチします:
- Sarah Dayan氏がfrontstuffでJavaScriptでのお金の解析について書いています。
となっています。
Photo by Alejandro Ortiz on Unsplash
div