Number.MAX_SAFE_INTEGER
Number.MAX_SAFE_INTEGER 静态数据属性表示 JavaScript 中的最大安全整数 (253 – 1)。
对于更大的整数,请考虑使用 BigInt。
试一试
const x = Number.MAX_SAFE_INTEGER + 1;
const y = Number.MAX_SAFE_INTEGER + 2;
console.log(Number.MAX_SAFE_INTEGER);
// Expected output: 9007199254740991
console.log(x);
// Expected output: 9007199254740992
console.log(x === y);
// Expected output: true
值
9007199254740991 (9,007,199,254,740,991,或约 9 千万亿)。
Number.MAX_SAFE_INTEGER 的属性特性 | |
|---|---|
| 可写 | 否 |
| 可枚举 | 否 |
| 可配置 | 否 |
描述
双精度浮点格式仅有 52 位来表示 尾数,因此它只能安全地表示 -(253 – 1) 和 253 – 1 之间的整数。“安全”在此上下文中指的是能够精确表示整数并正确比较它们的能力。例如,Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 将计算为 true,这在数学上是不正确的。有关更多信息,请参阅 Number.isSafeInteger()。
由于 MAX_SAFE_INTEGER 是 Number 的静态属性,您始终将其用作 Number.MAX_SAFE_INTEGER,而不是作为数字值的属性。
示例
MAX_SAFE_INTEGER 的返回值
js
Number.MAX_SAFE_INTEGER; // 9007199254740991
MAX_SAFE_INTEGER 和 EPSILON 之间的关系
Number.EPSILON 是 2-52,而 MAX_SAFE_INTEGER 是 253 – 1 — 两者都源自尾数的宽度,即 53 位(最高位始终为 1)。将它们相乘会得到一个非常接近 — 但不等于 — 2 的值。
js
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-number.max_safe_integer |
浏览器兼容性
加载中…