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 |
瀏覽器相容性
載入中…