导航
×
   ❮   
HTML CSS JavaScript PHP Go ECMS

JavaScript 教程

JS 简介 JS 如何使用 JS 输出 JS 语法 JS 语句 JS 注释 JS 变量 JS 运算符 JS 条件语句 JS 循环 JS 字符串 JS 数字 JS 函数 JS 对象 JS 日期 JS 数组 JS 类型化数组 JS 集合 JS Map 映射 JS Math JS 正则表达式 JS 数据类型 JS 错误 JS 事件 JS 编程 JS 关键字参考 JS 保留关键字参考 JS 运算符参考 JS 运算符优先级 JS UTF-8 字符 JS UTF-8 符号 JS UTF-8 表情符号 JS 版本

JavaScript BigInt 类型


JavaScript 的 BigInt 变量用于存储过大的整数值,这些值无法用普通的 JavaScript Number 变量表示。

JavaScript 整数精度

JavaScript 整数的精度只有 15 位小数:

整数精度

let x = 999999999999999;
let y = 9999999999999999;
亲自试一试 »

在 JavaScript 中,所有数字都以 64 位浮点格式(IEEE 754 标准)存储。

根据此标准,大整数无法精确表示,会被舍入。

因此,JavaScript 只能安全地表示以下整数:

最大到 9007199254740991 + (253 - 1)

以及

最小到 -9007199254740991 - (253 - 1)。

超出此范围的整数值会丢失精度。


如何创建 BigInt

要创建 BigInt,请在整数末尾添加 n 或调用 BigInt():

示例

let x = 9999999999999999;
let y = 9999999999999999n;
亲自试一试 »
let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345)
亲自试一试 »

BigInt:一种新的 JavaScript 数据类型

JavaScript 中 typeofBigInt 类型为 "bigint":

示例

let x = BigInt(999999999999999);
let type = typeof x;
亲自试一试 »

BigInt 是 JavaScript 中第二个数值数据类型(第一个是 Number)。

加上 BigInt,JavaScript 支持的数据类型总数为 8 种。

1. String
2. Number
3. Bigint
4. Boolean
5. Undefined
6. Null
7. Symbol
8. Object


BigInt 运算符

可用于 JavaScript Number 的运算符也可用于 BigInt

BigInt 乘法示例

let x = 9007199254740995n;
let y = 9007199254740995n;
let z = x * y;
亲自试一试 »

备注

不允许对 BigIntNumber 进行算术运算(类型转换会丢失信息)。

无法对 BigInt 执行无符号右移 (>>>) 操作(因为它没有固定的宽度)。


BigInt 类型的小数

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 的十六进制、八进制和二进制表示

BigInt 也可以用十六进制、八进制或二进制表示:

BigInt 十六进制示例

let hex = 0x20000000000003n;
let oct = 0o400000000000000003n;
let bin = 0b100000000000000000000000000000000000000000000000000011n;
亲自试一试 »

精确度的问题

舍入可能会危及程序安全:

MAX_SAFE_INTEGER 示例

9007199254740992 === 9007199254740993; // is true !!!
亲自试一试 »

浏览器支持

BigInt()ES2020 的一项特性。

自 2020 年 9 月起,所有现代浏览器均已完全支持 ES2020。

         
Chrome
85
Edge
85
Firefox
79
Safari
14
Opera
71
2020年8月 2020年8月 2020年3月 2020年9月 2020年9月

freew3c.com 中文网是独立运营的中文开发者学习平台,与 freew3c.com 无关联。提供的内容仅用于学习和测试,不保证内容的正确性。


Copyright @2020-2026 京ICP备888888号-8