JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのNumber.isInteger()関数とは?整数判定の基本と使い方

Number.isInteger()は、引数に渡した値が整数かどうかを判定できるNumberオブジェクトの静的メソッドです。値が整数であればtrueを返し、小数・無限大・NaN・文字列など整数以外の値に対してはfalseを返します。

なお、100/0のようなゼロ除算の計算結果はInfinity(無限大)になるため、この値を渡すとfalseが返されます。

構文

Number.isInteger(判定したい値)

使用例1:無限大が整数かどうかを判定する

次のコードでは、100/0の計算結果が整数かどうかを判定し、結果に応じて表示するメッセージを切り替えています。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var result = Number.isInteger(100/0);
        if(result) {
            document.write("渡された値は整数です");
        } else {
            document.write("渡された値は整数ではありません");
        }
    </script>
</body>
</html>

実行結果

渡された値は整数ではありません

使用例2:さまざまな値を判定する

引数には正の整数・負の整数・ゼロ・文字列など、さまざまな値を渡せます。それぞれの判定結果を見てみましょう。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var result1 = Number.isInteger(45);
        document.write(result1);
        document.write("<br>");
        var result2 = Number.isInteger(-38);
        document.write(result2);
        document.write("<br>");
        var result3 = Number.isInteger(0);
        document.write(result3);
        document.write("<br>");
        var result4 = Number.isInteger("Tutorialspoint");
        document.write(result4);
    </script>
</body>
</html>

実行結果

true
true
true
false

正負の整数やゼロはtrueになりましたが、文字列「Tutorialspoint」は数値型ではないためfalseと判定されました。見た目が数字でも、データ型が違えば整数とはみなされない点に注意してください。

戻り値の早見表

引数の値戻り値理由
45true正の整数だから
-38true負の数も整数に含まれる
0trueゼロも整数
10.5false小数は整数ではない
Infinityfalse無限大は整数ではない
NaNfalse非数(Not a Number)だから
"123"false文字列型は数値型ではない

Number.isInteger()とNumber.isFinite()の違い

名前がよく似たメソッドにNumber.isFinite()があります。isFinite()は「有限の数値かどうか」を判定するメソッドで、小数もtrueになります。一方、isInteger()は「整数かどうか」を判定するため、小数はfalseです。「有限の数なら何でもよい」場合はisFinite()を、「きっちり整数だけを判定したい」場合はisInteger()を使い分けるとよいでしょう。

利用時の注意点

  • Number.isInteger()はECMAScript 2015(ES6)で追加されたメソッドのため、Internet Explorerなど非常に古いブラウザでは利用できません。
  • 単体のグローバル関数としては存在しないため、必ずNumber.を付けて呼び出します。
  • 「123」のような数字に見える文字列も、型が文字列であればfalseになります。必要に応じてNumber()などで型変換してから判定しましょう。
  1. JavaScriptのTypedArray.entries()関数とは?使い方とサンプルコードを解説

    TypedArray.entries()関数とはentries()は、TypedArray(型付き配列)オブジェクトが持つメソッドの一つで、その型付き配列のキー(インデックス)と値(要素)のペアを順番に取り出せる新しいArray Iteratorオブジェクトを返します。このイテレーターを利用することで、配列内の各要素だけでなく、その要素が配列のどの位置(インデックス)にあるのかも同時に取得できます。戻り値の各要素は「[インデックス, 値]」という形式の配列になっています。構文typedArray.entries()このメソッドは引数を受け取らず、呼び出すだけで新しいイテレーターオブジェクトを返

  2. JavaScriptのNumber()関数とは?使い方とサンプルコードを解説

    JavaScriptのNumber()関数は、引数として渡された値やオブジェクトを、それに対応する数値へ変換するための関数です。真偽値や文字列型の数字、さらにはDateオブジェクトなども数値に変換できるため、データ型の変換処理において非常に便利な組み込み関数の一つです。例えば、Number(true)は「1」、Number(false)は「0」を返します。また、数字のみで構成された文字列「149」を渡せば数値の149に変換され、new Date()で生成した日付オブジェクトを渡すと、1970年1月1日からの経過ミリ秒数が返されます。以下に、Number()関数の動作を確認できるサンプルコードを