JavaScriptで整数をチェックする5つの方法のコード解説
JavaScriptにおける小数点の有無のチェック
JavaScriptでは、数値が小数点を持つかどうか(つまり、整数かどうか)を判定する方法はいくつかあります。
モジュロ演算子(%)を用いる
- 原理: 整数で除算したときの余りが0であれば、その数は整数です。
- コード:
function isInteger(num) {
return num % 1 === 0;
}
正規表現を用いる
- 原理: 正規表現パターンで数値の形式をマッチングさせます。
function isInteger(num) {
return /^\d+$/.test(num);
}
parseInt()関数と比較する
- 原理:
parseInt()
関数は数値を整数に変換します。元の数値と比較して同じであれば、整数です。
function isInteger(num) {
return parseInt(num) === num;
}
Number.isInteger()関数を利用する
- 原理: JavaScriptの組み込み関数である
Number.isInteger()
は、直接数値が整数かどうかを判定します。
function isInteger(num) {
return Number.isInteger(num);
}
これらの方法を適切に選択して、プログラムの要件に基づいて小数点の有無を判定してください。
- 数値の型: JavaScriptでは、数値型は自動的に整数または浮動小数点型に型変換されます。
- バリデーション: これらの方法は、入力値のバリデーションやデータ処理の際に役立ちます。
- パフォーマンス: 性能面では、
Number.isInteger()
が通常最も効率的です。
例:
const number1 = 10;
const number2 = 3.14;
console.log(isInteger(number1)); // true
console.log(isInteger(number2)); // false
JavaScriptで整数をチェックする5つの方法のコード解説
function isInteger(num) {
return num % 1 === 0;
}
- 解説:
num % 1
は、num
を 1 で割った余りを求めます。- 整数はどんな数で割っても余りが 0 になるため、
num % 1
が 0 ならnum
は整数です。
- 例:
isInteger(5)
はtrue
を返します。
function isInteger(num) {
return /^\d+$/.test(num);
}
- 解説:
^\d+$
は、数字のみで構成される文字列にマッチする正規表現です。test()
メソッドは、引数の文字列が正規表現にマッチするかを判定します。- 数値を文字列に変換し、この正規表現にマッチすれば、その数値は整数です。
function isInteger(num) {
return parseInt(num) === num;
}
- 解説:
parseInt()
は、文字列を整数に変換する関数です。- 数値を
parseInt()
で変換しても元の数値と変わらない場合、その数値は整数です。
function isInteger(num) {
return Number.isInteger(num);
}
- 解説:
Number.isInteger()
は、数値が整数かどうかを判定する組み込み関数です。- 整数であれば
true
、そうでなければfalse
を返します。
JavaScriptで整数をチェックする方法は他にも多数存在します。
- toFixed() を使う:
num === Number(num.toFixed())
- 16進整数リテラルを利用する:
0x
で始まる16進数リテラルは整数のみを表す - ...
どの方法を選ぶかは、
- パフォーマンス:
Number.isInteger()
が一般的に高速 - 可読性: 読みやすいコードにするには
Number.isInteger()
がシンプル - 特定のケース: 正規表現や
parseInt()
が必要なケースも
などの要素を考慮して、適切な方法を選択してください。
JavaScriptで整数をチェックする方法は複数あります。それぞれの方法に特徴があり、状況に応じて使い分けることが重要です。
重要なポイント:
- モジュロ演算子: 余りで判定
- 正規表現: 文字列パターンで判定
- parseInt(): 整数に変換して比較
- Number.isInteger(): 組み込み関数で判定
toFixed() メソッドを利用する
function isInteger(num) {
return num === Number(num.toFixed());
}
- 解説:
toFixed()
メソッドは、数値を指定された桁数で丸めて文字列に変換します。- 整数を丸めても値が変わらないため、元の数値と
toFixed()
で変換した数値が一致すれば、その数は整数です。
16進整数リテラルを利用する
function isInteger(num) {
return Number.isInteger(parseInt(num, 16));
}
- 解説:
- 16進数リテラルは
0x
で始まり、数値を16進数で表現します。 parseInt(num, 16)
で16進数から10進数に変換し、Number.isInteger()
で整数かどうかを判定します。- 16進数リテラルは整数のみを表すため、この方法で整数かどうかを判定できます。
- 16進数リテラルは
ビット演算子を利用する
function isInteger(num) {
return (num | 0) === num;
}
- 解説:
- ビット演算子
|
は、ビットごとのOR演算を行います。 - 整数を0とOR演算しても値は変わらないため、元の数値とビット演算の結果が一致すれば、その数は整数です。
- ビット演算子
Object.is() メソッドを利用する
function isInteger(num) {
return Object.is(parseInt(num), num);
}
- 解説:
Object.is()
メソッドは、2つの値が厳密に等しいかどうかを判定します。parseInt()
で変換した数値と元の数値が厳密に等しければ、その数は整数です。
どの方法を選ぶべきか?
- 可読性:
Number.isInteger()
が最もシンプルで読みやすいです。 - 特定のケース:
toFixed()
は、小数点以下の桁数を制御したい場合に便利です。- 16進数リテラルは、16進数で扱っている場合に便利です。
- ビット演算子は、ビット操作に慣れている場合に便利です。
Object.is()
は、NaNとの比較など、より厳密な比較が必要な場合に便利です。
JavaScriptで整数をチェックする方法は、上記以外にも様々な方法があります。どの方法を選ぶかは、パフォーマンス、可読性、特定のケース などを考慮して、ご自身のコードに合った方法を選択してください。
- 複数の方法が存在する
- 各方法に特徴がある
- 状況に応じて使い分ける
Number.isInteger()
が一般的に推奨される
javascript validation numbers