📜  bigInt 的类型 (1)

📅  最后修改于: 2023-12-03 14:39:31.331000             🧑  作者: Mango

BigInt 的类型

介绍

BigInt 是 ECMAScript 的新类型,用于表示任意精度的整型数值,它可以容纳比 JavaScript 中通常的 Number 类型所能表示的更大范围的整数。在 JavaScript 中,Number 类型只能安全地表示 -2^53 到 2^53 之间的整数。而 BigInt 类型能够表示更大的整型数值,甚至可以超出 JavaScript 中的 Number 类型的表示范围。

语法

BigInt 类型的字面量表示方式是在整数值的末尾添加一个大写的 "n",比如:

const bigNumber = 9007199254740991n;

这里的 "n" 比较重要,这是告诉 JavaScript 解释器将它解释成一个 BigInt 类型的值。如果没有添加 "n",大整数将被默认为 Number 类型。

操作

BigInt 类型支持大多数 Number 类型的操作,例如加减乘除、取 modulus,以及左移和右移。与 Number 类型不同的是,BigInt 类型的计算是经过精度处理的,因此它的运算结果也可以超出 Number 类型所能表示的范围。

示例

下面是一些 BigInt 类型的使用示例:

const bigNumber = 9007199254740991n;
const bigSum = bigNumber + 1n; // 9007199254740992n
const bigProduct = bigNumber * 2n; // 18014398509481982n

// BigInt 类型和 Number 类型的运算将会自动转换为 BigInt 类型
const mixedSum = bigNumber + 2; // 9007199254740993n
const mixedProduct = bigNumber * 2; // 18014398509481982n

// BigInt 类型和 Number 类型一起进行运算会抛出错误
const errorSum = bigNumber + 2.5; // TypeError: can't convert floating-point number to BigInt

// BigInt 类型的运算会经过精度处理,因此它的运算结果可以超出 Number 类型的表示范围
const bigSum2 = 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n + 900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n;
// 80900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n
总结

BigInt 类型是 ECMAScript 新增的类型之一,用于表示任意精度的整数。它与 Number 类型的操作差异不大,但可以处理更大的整型数值。对于需要处理大整数或高精度计算的开发者来说,BigInt 类型可以提供一种更加简单、可靠、高效的解决方案。