Number.isInteger()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 2015 年 9 月以來,該特性已在各大瀏覽器中可用。

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。如果值為 NaNInfinity,則返回 false。該方法也會對可以表示為整數的浮點數返回 true。如果值不是數字,則始終返回 false

請注意,一些數字字面量雖然看起來像非整數,但實際上表示整數——這是由於 ECMAScript 浮點數編碼(IEEE-754)的精度限制。例如,5.00000000000000015 的差異只有 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

瀏覽器相容性

另見