ECMAScript 2021 (ES12) 中如何使用 BigInt 处理极大的整数运算

在日常的前端开发中,我们经常需要处理数字计算,但是 JavaScript 中最大的整数是 2^53 - 1,如果超出这个范围,就会出现精度丢失等问题。为了解决这个问题,ECMAScript 2021(也称为 ES12)引入了一个新的数值类型 BigInt,它可以用来存储任意大小的整数。

BigInt 简介

BigInt 是 ECMAScript 加入的一个新的原生数值类型。与 Number 不同,BigInt 可以表示非常大的整数,甚至可以表示超过 2 的 53 次方的整数,同时保持高精度和整型的特性。

创建 BigInt 数值

我们可以使用 n 后缀或者调用 BigInt() 函数来创建 BigInt 对象。下面是一些示例代码:

注意:当使用字面量时,需要在数字后面加上 n 来表示 BigInt 类型。

BigInt 运算

除了基本的加、减、乘、除等运算,BigInt 还支持位运算符(按位与、按位或等)。下面是一些示例代码:

BigInt 和 Number 的相互转换

为了充分利用 JavaScript 提供的 Number 功能,我们需要在 BigInt 和 Number 相互转换时注意一些事项。

将 BigInt 转换为 Number ,使用 Number() 即可:

但是需要注意,BigInt 超过了 Number 所能表示的最大值时,将会丢失精度:

将 Number 转换为 BigInt,则需要使用 BigInt() 函数:

BigInt 的一些注意事项

在使用 BigInt 时,需要注意以下几点:

  • 不能将 BigInt 值与 Number 值混合运算。
  • 不能使用 BigInt 值作为对象属性名称。
  • 不能在 for..in 循环中使用 BigInt。

结论

ES2021 中的新增功能 BigInt 提供了处理大数运算的能力,比较简单易用,适用于开发者处理大数计算场景。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672cfcefddd3a70eb6d99c18


纠错
反馈