JavaScript Number.isSafeInteger() 方法

Number 对象参考手册 JavaScript Number 对象

实例

检测参数是否是一个"安全整数":

Number.isSafeInteger(123); Number.isSafeInteger(-123); Number.isSafeInteger('123'); Number.isSafeInteger(5-2); Number.isSafeInteger(0); Number.isSafeInteger(0.5); Number.isSafeInteger(0/0);

尝试一下 »

定义和用法

isSafeInteger() 方法用来判断传入的参数值是否是一个"安全整数"(safe integer),如果是安全整数返回 true,否则返回 false。

一个安全整数是一个符合下面条件的整数:

  • 可以准确地表示为一个 IEEE-754 双精度数字。
  • 其 IEEE-754 表示不能是舍入任何其他整数以适应 IEEE-754 表示的结果。

比如,2^53 - 1 是一个安全整数,它能被精确表示,在任何 IEEE-754 舍入模式(rounding mode)下,没有其他整数舍入结果为该整数。作为对比,2^53 就不是一个安全整数,它能够使用 IEEE-754 表示,但是 2^53 + 1 不能使用 IEEE-754 直接表示,在就近舍入(round-to-nearest)和向零舍入中,会被舍入为 2^53。

安全整数范围为 -(2^53 - 1) 到 2^53 - 1 之间的整数,包含 -(2^53 - 1) 和 2^53 - 1。

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() 是 ECMAScript6 (ES6) 新特性。

基本上最新的浏览器版本都支持 ES6 (JavaScript 2015)。

Number.isSafeInteger() 不支持 Internet Explorer 11 及更早版本的浏览器。

Chrome Edge Firefox Safari Opera
Yes Yes Yes Yes Yes

语法

Number.isSafeInteger(value)

参数值

参数 描述
value 要检测的值。

返回值

类型 描述
布尔型 如果是安全整数返回 true,否则返回 false。

技术细节

JavaScript 版本: ECMAScript 6

更多实例

实例

检测参数是否为安全整数:

Number.isSafeInteger(Math.pow(2, 53)); Number.isSafeInteger(Math.pow(2, 53) - 1); Number.isSafeInteger(true); Number.isSafeInteger(false); Number.isSafeInteger(Infinity); Number.isSafeInteger(-Infinity);

尝试一下 »

Number 对象参考手册 JavaScript Number 对象