JavaScriptの数値判定メソッド(isFinite, isInteger)を解説
先生と生徒の会話形式で理解しよう
生徒
「先生、JavaScriptで数字かどうか確認する方法ってありますか?」
先生
「はい、JavaScriptには数値判定用のメソッドがあります。特にisFiniteとisIntegerが便利です。」
生徒
「違いは何ですか?」
先生
「isFiniteは有限の数かどうかを確認するメソッドで、isIntegerは整数かどうかを判定するメソッドです。」
生徒
「なるほど。具体的な使い方を教えてください。」
先生
「では、基本的な例を見てみましょう。」
1. isFiniteメソッドとは?
isFiniteは、引数が有限の数かどうかを確認するメソッドです。Infinityや- Infinity、NaN(Not a Number)などの特別な数値はfalseを返します。有限の数であればtrueを返します。
console.log(isFinite(100)); // true
console.log(isFinite(-500.5)); // true
console.log(isFinite(Infinity)); // false
console.log(isFinite(NaN)); // false
console.log(isFinite("123")); // true(文字列は数値に変換される)
true
true
false
false
true
文字列が数字に変換できる場合はtrueになりますが、変換できない場合はfalseになります。
2. Number.isFiniteとの違い
注意点として、Number.isFiniteというメソッドもあります。こちらは引数を数値として判定するため、文字列はfalseになります。
console.log(Number.isFinite(123)); // true
console.log(Number.isFinite("123")); // false
true
false
文字列などの型変換を自動で行わないので、より厳密に判定したい場合はこちらを使います。
3. isIntegerメソッドとは?
isIntegerは、数値が整数かどうかを判定するメソッドです。小数点以下がある数はfalse、整数であればtrueを返します。
console.log(Number.isInteger(100)); // true
console.log(Number.isInteger(3.14)); // false
console.log(Number.isInteger(-50)); // true
console.log(Number.isInteger(NaN)); // false
console.log(Number.isInteger(Infinity));// false
true
false
true
false
false
小数や特別な数値(NaN、Infinity)にはfalseが返ることに注意しましょう。
4. isFiniteとisIntegerを組み合わせる
数値が有限で整数かどうかを両方チェックしたい場合は、isFiniteとNumber.isIntegerを組み合わせて使うこともできます。
function isFiniteInteger(num) {
return isFinite(num) && Number.isInteger(num);
}
console.log(isFiniteInteger(100)); // true
console.log(isFiniteInteger(3.14)); // false
console.log(isFiniteInteger(Infinity)); // false
true
false
false
これにより、より安全に数値の判定ができ、プログラムのエラーを防ぐことができます。
5. まとめではない注意点
数値判定メソッドを使う際のポイントは以下の通りです。
isFiniteは文字列も数値に変換して判定するNumber.isFiniteは型変換を行わず、より厳密な判定ができるNumber.isIntegerは整数かどうかだけを判定する- 特別な値(NaN、Infinity)は判定結果に注意する