Number.isInteger()

基线 广泛可用

此功能已得到很好的建立,可以在许多设备和浏览器版本中使用。它自 2015 年 7 月.

报告反馈

试一试

语法

Number.isInteger() 静态方法用于确定传递的值是否为整数。
Number.isInteger(value)

js

参数

value

要测试是否为整数的值。

返回值

描述

如果给定值为整数,则为布尔值 true。否则为 false

如果目标值为整数,则返回 true,否则返回 false。如果值为 NaNInfinity,则返回 false。该方法还将为可以表示为整数的浮点数返回 true。如果该值不是数字,则该方法始终返回 false

请注意,一些数字字面量虽然看起来不像整数,但实际上表示整数 - 这是由于 ECMAScript 浮点数编码(IEEE-754)的精度限制。例如,5.0000000000000001 仅与 5 相差 1e-16,这太小而无法表示。(作为参考,Number.EPSILON 存储 1 与大于 1 的下一个可表示浮点数之间的距离,约为 2.22e-16。)因此,5.0000000000000001 将使用与 5 相同的编码表示,从而使 Number.isInteger(5.0000000000000001) 返回 true

示例

类似地,围绕 Number.MAX_SAFE_INTEGER 数量级的数字会受到精度损失的影响,即使它不是整数,也会使 Number.isInteger 返回 true。(实际阈值会根据表示小数所需的位数而有所不同 - 例如,Number.isInteger(4500000000000000.1)true,但 Number.isInteger(4500000000000000.5)false。)

Number.isInteger() 静态方法用于确定传递的值是否为整数。
Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(99999999999999999999999); // true

Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false

Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false

Number.isInteger(5.0); // true
Number.isInteger(5.000000000000001); // false
Number.isInteger(5.0000000000000001); // true, because of loss of precision
Number.isInteger(4500000000000000.1); // true, because of loss of precision

规范

使用 isInteger
规范
# ECMAScript 语言规范

浏览器兼容性

sec-number.isinteger

另请参阅