ES11:对 JavaScript BigInt 的使用和呈现

阅读时长 4 分钟读完

随着数字计算的需求不断增长,JavaScript 发布了 ES11 标准,其中包括了内置类型 BigInt,用于处理大数计算。BigInt 相比传统 Number 类型具有更高的精度和支持更大的数值范围,但使用时需要注意一些细节。

什么是 BigInt?

BigInt 表示一个任意长度整数,它可以轻松地表示超出 Number 范围的数字。BigInt 并不是一个对象,而是一个原始数据类型,它具有以下特点:

  • 后缀 n 来表明这个数是 BigInt 数据类型。
  • BigInt 可以表示整数的最大值、最小值、正数和负数等。
  • 可以通过数学运算符来处理 BigInt,与普通 Number 类型的操作类似。

下面是一个简单的示例:

在上面的示例中,9007199254740991n 是一个 BigInt 值,加上 1n 后就得到了 9007199254740992n

如何使用 BigInt?

如果我们要创建一个 BigInt 值,则需要在数字后面添加后缀 n,例如:

当然,也可以通过工厂函数 BigInt() 来创建 BigInt 值:

需要注意的是,BigInt 类型与其他 JavaScript 数据类型的操作并不总是兼容。例如,如果我们尝试将 BigInt 类型的变量和 Number 类型的变量混合使用,则可能会出现错误。

可以执行哪些操作?

BigInt 提供了许多可以用来处理大整数的运算符和方法。这里列举其中一些常见的操作:

算术运算

  • 加法:使用 + 运算符或 BigInt.prototype.add() 方法实现。
  • 减法:使用 - 运算符或 BigInt.prototype.sub() 方法实现。
  • 乘法:使用 * 运算符或 BigInt.prototype.mul() 方法实现。
  • 除法:使用 / 运算符或 BigInt.prototype.div() 方法实现。

比较运算

  • 等于:使用 === 运算符或 BigInt.prototype.eq() 方法实现。
  • 不等于:使用 !== 运算符或 BigInt.prototype.neq() 方法实现。
  • 大于:使用 > 运算符或 BigInt.prototype.gt() 方法实现。
  • 小于:使用 < 运算符或 BigInt.prototype.lt() 方法实现。

其他方法

  • BigInt.prototype.toString(radix):将 BigInt 转换为字符串,其中 radix 表示要使用的进制。
  • BigInt.prototype.valueOf():返回 BigInt 值的原始数字值。
  • BigInt.asUintN(bitLength, value):将给定的值转换为无符号整数(不关心符号)并重新调整大小以适合给定的位长度。
  • BigInt.asIntN(bitLength, value):将给定的值转换为有符号整数(最高有效位定义符号)并重新调整大小以适合给定的位长度。

总结

BigInt 的出现增强了 JavaScript

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

纠错
反馈