isFinite() - JavaScriptで数値の有限性確認!isFinite()関数入門
投稿日 2025年02月07日 更新日 2025年02月07日
JavaScriptで数値が有限であるかどうかを確認したい場合、`isFinite()`関数を使用します。この記事では、`isFinite()`関数の使い方と実践的な例を詳しく解説します。
isFinite()関数の基本
`isFinite()`は、引数として与えられた値が有限数値であるかどうかを判定し、結果を真偽値(boolean)で返す関数です。
isFinite(123); // true
isFinite(-456); // true
isFinite(0); // true
isFinite(Infinity); // false
isFinite(-Infinity);// false
isFinite(NaN); // false使用例と戻り値
`isFinite()`関数は以下のような結果を返します:
- 有限の数値の場合:`true`
- 無限大(Infinity)の場合:`false`
- 数値以外の値の場合:引数を数値に変換して判定
// 数値の例
isFinite(100.5); // true
isFinite(-50); // true
// 文字列の例(数値に変換可能な場合)
isFinite("123"); // true
isFinite("-456.7"); // true
// 無効な値の例
isFinite("abc"); // false
isFinite(""); // true(空文字は0に変換される)
isFinite(null); // true(nullは0に変換される)よくあるユースケース
1. 計算結果の妥当性チェック
function divide(a, b) {
const result = a / b;
if (!isFinite(result)) {
return "計算結果が無効です";
}
return result;
}
console.log(divide(10, 2)); // 5
console.log(divide(10, 0)); // "計算結果が無効です"2. ユーザー入力の検証
function validateInput(value) {
if (!isFinite(value)) {
return "有効な数値を入力してください";
}
return "入力値は有効です";
}
console.log(validateInput("123")); // "入力値は有効です"
console.log(validateInput("abc")); // "有効な数値を入力してください"Number.isFinite()との違い
ES6で導入された`Number.isFinite()`は、`isFinite()`のより厳密なバージョンです:
// グローバルisFinite()
isFinite("123"); // true(文字列を数値に変換)
isFinite(null); // true(nullを0に変換)
// Number.isFinite()
Number.isFinite("123"); // false(変換を行わない)
Number.isFinite(null); // false(変換を行わない)実践的なTips
エラーハンドリング
function safeCalculation(value) {
try {
const result = complexMathOperation(value);
return isFinite(result) ? result : "計算エラー";
} catch (error) {
return "エラーが発生しました";
}
}配列の要素チェック
function validateNumbers(arr) {
return arr.every(num => isFinite(num));
}
console.log(validateNumbers([1, 2, 3])); // true
console.log(validateNumbers([1, "abc", 3])); // falseまとめ
- `isFinite()`は値が有限数値かどうかを判定する
- 引数は自動的に数値に変換される
- `Number.isFinite()`はより厳密な判定を行う
- 計算結果の妥当性チェックやユーザー入力の検証に有用
これらの知識を活用することで、より堅牢なJavaScriptアプリケーションを開発することができます。
関連記事

新着記事
5
6
7
関連記事
5
6
7


60秒で完了




