JavaScript Number.isSafeInteger() 方法
实例代码
检测参数是否是一个"安全整数":
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);