Number.isInteger()
Number.isInteger() 静态方法用于判断传入的值是否为整数。
试一试
function fits(x, y) {
if (Number.isInteger(y / x)) {
return "Fits!";
}
return "Does NOT fit!";
}
console.log(fits(5, 10));
// Expected output: "Fits!"
console.log(fits(5, 11));
// Expected output: "Does NOT fit!"
语法
js
Number.isInteger(value)
参数
value-
要测试是否为整数的值。
返回值
如果给定值为整数,则返回布尔值 true。否则返回 false。
描述
如果目标值是整数,则返回 true,否则返回 false。如果值为 NaN 或 Infinity,则返回 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。)
示例
使用 isInteger
js
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
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-number.isinteger |
浏览器兼容性
加载中…