この記事ではJavaScriptやTypeScriptで数値を扱う時に使用するNumber.isInteger と Number.isSafeInteger について解説します。
数値のチェックはよく使うため覚えておくと便利です!
Number.isInteger
初めに値が整数かどうかを判定するのは Number クラスの isInteger メソッドです。
console.log(Number.isInteger(42));       // true
console.log(Number.isInteger(42.0));     // true
console.log(Number.isInteger(42.5));     // false
console.log(Number.isInteger('42'));     // false
console.log(Number.isInteger(true));     // false
console.log(Number.isInteger(undefined));// false
面白いですね。42.0 も数学的には整数として扱われるので true が返ります。
そして、数値以外の型に対しては当然ですが false が返ることが確認できます。
Number.isSafeInteger
次に、isSafeInteger メソッドを用いて整数が安全な範囲に収まっているか確認する方法を紹介します。
console.log(Number.isSafeInteger(9007199254740991));      // true
console.log(Number.isSafeInteger(Math.pow(2, 53) - 1));   // true
console.log(Number.isSafeInteger(Math.pow(2, 53)));       // false
console.log(Number.isSafeInteger('9007199254740991'));    // false
console.log(Number.isSafeInteger(Infinity));              // false
このときの「安全な整数」というのは、IEEE-754倍精度数として正確に表現できる範囲の整数を指します。
具体的には -9007199254740991 から 9007199254740991 の範囲になります。
Number.isInteger は数値が整数であるかを調べます。Number.isSafeInteger は数値が安全な範囲の整数であるかを調べます。
数値型ではない場合、両メソッドとも false を返します!
数値の扱いには注意が必要ですね。
これらのメソッドを使用することで、より安全なコードを書くことができるようになります。
TypeScriptの短絡評価の使い方「&&」「||」「??」の解説
TypeScriptのタイマー関数setTimeoutとsetIntervalの使い方
TypeScriptの多次元配列の使い方についてわかりやすく解説
TypeScriptでのタプルの使い方と実践テクニックを解説
TypeScriptのimport typeをわかりやすく解説
TypeScriptの配列やオブジェクトのソート完全ガイド
TypeScriptコメントアウトの使い方 完全ガイド
TypeScriptのオブジェクトとプロパティの存在チェック完全ガイド
TypeScriptで即時関数を使う方法を解説!基本から実践的な使い方まで