JavaScriptBigInt
变量用于存储太大而无法用普通 JavaScript 表示的大整数值Number
。
JavaScript 整数最多只能精确到 15 位:
在 JavaScript 中,所有数字都以 64 位浮点格式存储(IEEE 754 标准)。
在这个标准下,大整数无法精确表示,将会被四舍五入。
因此,JavaScript 只能安全地表示整数:
取决于9007199254740991+(253-1)
和
向下-9007199254740991-(253-1)。
超出此范围的整数值会失去精度。
创建一个BigInt
,将 n 附加到整数或调用的末尾BigInt()
:
let x = 9999999999999999;
let y = 9999999999999999n;
亲自试一试 »
let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345)
亲自试一试 »
JavaScripttypeof
ABigInt
是"bigint":
BigInt
是 JavaScript 中的第二个数字数据类型(在Number
)。
和BigInt
JavaScript 支持的数据类型总数为 8 种:
1. 字符串
2. 数量
3. 比格特
4. 布尔值
5. 未定义
6. 空
7. 符号
8. 对象
可在 JavaScript 上使用的运算符Number
也可以用在BigInt
。
之间的算术BigInt
和一个Number
不允许(类型转换丢失信息)。
无法在 a 上完成无符号右移 (>>>)BigInt
(它没有固定的宽度)。
BigInt
不能有小数。
let x = 5n;
let y = x / 2;
// Error: Cannot mix BigInt and other types, use explicit conversion.
let x = 5n;
let y = Number(x) / 2;
亲自试一试 »
BigInt
也可以用十六进制、八进制或二进制表示法书写:
let hex = 0x20000000000003n;
let oct = 0o400000000000000003n;
let bin = 0b100000000000000000000000000000000000000000000000000011n;
亲自试一试 »
舍入可能会损害程序安全性:
BigInt
自 2020 年 9 月起所有浏览器均支持:
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
May 2018 | Jan 2020 | Jul 2019 | Sep 2020 | Jun 2018 |
ES6向 Number 对象添加 max 和 min 属性:
MAX_SAFE_INTEGER
MIN_SAFE_INTEGER
ES6还向 Number 对象添加了 2 个新方法:
Number.isInteger()
Number.isSafeInteger()
这个Number.isInteger()
方法返回true
如果参数是整数。
安全整数是可以精确表示为双精度数的整数。
这个Number.isSafeInteger()
方法返回true
如果参数是安全整数。
安全整数是来自 -(253- 1) 至 +(253- 1).
这是安全的:9007199254740991。这是不安全的:9007199254740992。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!