MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Number.isSafeInteger()

Number.isSafeInteger() メソッドは、引数として与えた数が safe integer かどうかの真偽値を返します。safe integer は下記を満たす整数です。

  • 正確に IEEE-754 倍精度数として表すことができます。
  • IEEE-754 の表現は、IEEE-754 の表現に適合するように、他の整数を丸めた結果にすることはできません。

例えば、253 - 1 は safe integer です。正確に表現することができ、他の整数は、任意の IEEE-754 丸めモードの下で丸めていません。対照的に、253 は safe integer ではありません。 : IEEE-754 で正確に表現されますが、整数値 253 + 1 は直接 IEEE-754 では表現できません。代わりに四捨五入、0 への丸めによって 253 に丸められます。

safe integer は -(253 - 1) 以上 253 - 1 以下の整数値です。

構文

Number.isSafeInteger(testValue)

引数

testValue
safe integer かどうかテストされる値

Return value

与えられた値が safe integer かどうかを示すBoolean

Number.isSafeInteger(3);                    // true
Number.isSafeInteger(Math.pow(2, 53));      // false
Number.isSafeInteger(Math.pow(2, 53) - 1);  // true
Number.isSafeInteger(NaN);                  // false
Number.isSafeInteger(Infinity);             // false
Number.isSafeInteger('3');                  // false
Number.isSafeInteger(3.1);                  // false
Number.isSafeInteger(3.0);                  // true

ポリフィル

Number.isSafeInteger = Number.isSafeInteger || function (value) {
   return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
};

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Number.isSafeInteger の定義
標準 初期定義。
ECMAScript 2017 Draft (ECMA-262)
Number.isSafeInteger の定義
ドラフト  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) 32 (32) 未サポート (有) 10.0
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 未サポート 32.0 (32) 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama, shide55
 最終更新者: YuichiNukiyama,