JavaScriptで変数が整数かどうかを判定する方法をわかりやすく解説
JavaScriptである変数の値が整数かどうかを確認したい場面はよくあります。代表的な方法は、parseInt()を使って値を整数に変換し、元の値と===演算子(厳密等価演算子)で比較することです。元の値と変換後の値が完全に一致すれば、その変数は整数だと判断できます。
parseInt()を使った基本的な判定方法
parseInt()は文字列や数値を整数に変換する関数です。小数点以下を持つ数値は切り捨てられるため、元の値との比較結果が一致しなくなります。この性質を利用して、整数かどうかを判定できます。
以下のコードは、変数が整数かどうかをチェックするシンプルな例です。
<html>
<head>
<script>
var a = 10;
if (a === parseInt(a, 10)) {
alert("整数です!");
} else {
alert("整数ではありません!");
}
</script>
</head>
<body>
</body>
</html>この例では、変数aに10という整数が代入されているため、「整数です!」というアラートが表示されます。もしaが10.5のような小数だった場合は、parseInt(a, 10)の結果が10になり、元の値と一致しないため「整数ではありません!」と表示されます。
Number.isInteger()を使うモダンな方法
ES6(ECMAScript 2015)以降では、より簡潔で安全なNumber.isInteger()メソッドが使えます。このメソッドは引数が整数であればtrue、そうでなければfalseを返します。
console.log(Number.isInteger(10)); // true
console.log(Number.isInteger(10.5)); // false
console.log(Number.isInteger("10")); // false(文字列は整数とみなされない)
console.log(Number.isInteger(NaN)); // false注意点
parseInt()による比較では、文字列"10"も==ではなく===を使えば正しく判定できますが、意図しない型変換が起こる可能性があるため注意が必要です。Number.isInteger()は古いブラウザ(IEなど)ではサポートされていない場合があります。レガシー環境を対象とする場合はparseInt()方式を採用しましょう。- 非常に大きな数値や特殊な値(
Infinity、NaNなど)の扱いにも留意してください。Number.isInteger(Infinity)はfalseを返します。
現代のJavaScript開発ではNumber.isInteger()を使うのが最も推奨される方法ですが、従来の環境との互換性が必要なケースではparseInt()との比較が有効です。用途に応じて適切な方法を選びましょう。
-
JavaScriptでドキュメントの読み込み状態(readyState)を確認する方法
JavaScriptでドキュメント(ページ)の読み込みが完了しているかどうかを確認するには、document.readyStateプロパティを使用します。このプロパティは、現在のドキュメントの読み込み状況に応じて以下の3つの文字列を返します。loading … ドキュメントがまだ読み込み中の状態interactive … ドキュメントの解析は完了したが、画像などのサブリソースは still 読み込み中の状態complete … ドキュメントとすべてのサブリソースの読み込みが完了した状態以下は、ボタンをクリックしたタイミングでdocument.readyStateの値を判定し、ページの読み込み状
-
【JavaScript】配列内に数値(整数)が含まれているかどうかを判定する方法
はじめに本記事では、配列の中に数値型(number)の要素が含まれているかどうかを判定するJavaScript関数の実装方法を解説します。今回求められている仕様は以下のとおりです。関数は要素の配列を受け取る配列内に number 型の要素が1つでも存在するかをチェックする存在すれば true、存在しなければ false を返す実装例const arr = ["123", "", "21345", "90"];const findInteger = (arr = []) => { cons