ECMAScript 2020 (ES11) 中的 BigInt 类型详解及使用

阅读时长 4 分钟读完

随着 JavaScript 的不断发展,开发者们对于性能和精度的需求也越来越高。在 ECMAScript 2020 (ES11) 中,增加了一种新的数据类型 BigInt,能够更方便地处理大整数,可谓是提高了 JavaScript 处理大数的能力。

BigInt 的定义

BigInt 是 ECMAScript 2020 中新出现的一种基本数据类型,也可以被称为任意精度整数。它可以表示超过 2^53 的极大整数。

在 JavaScript 中,使用 Number 类型时,数字的安全编码范围仅仅是从 -2^53 到 2^53。超过了这一个范围,Number 类型就无法准确表示它们,会导致精度问题。因此,针对这个问题,ES11 引入了 BigInt 类型。BigInt 类型能够表示任意大的整数,没有精度问题,不过也因此消耗了更多的空间和计算资源。

BigInt 的使用

声明 BigInt 类型

在声明一个 BigInt 的变量时,需要在数字字面量后添加一个 n(字母 N 的小写形式,即 n)。例如:

需要注意的是,正常的数字字面量(不加 n)无法识别成 BigInt 类型。

运算符支持

操作 BigInt 类型与操作 Number 类型的操作符是有区别的。以下为 BigInt 的操作符支持:

  • +: 加法
  • -: 减法
  • *: 乘法
  • /: 除法
  • %: 取余
  • **: 求幂

BigInt 类型之间的操作符,可以直接使用如下的语法:

-- -------------------- ---- -------
----- ------- - ----------------------
----- ------- - ---------------------

----- ------- - ------- - -------- -- ---------------------
----- ------- - ------- - -------- -- ---------------------
----- ------- - ------- - -------- -- -------------------------------------------
----- ------- - ------- - -------- -- --
----- ------- - ------- - -------- -- -------------------
----- ------- - ------- -- -------- -- -------------------

此外,整数的二进制、八进制、十六进制的表示方式也适用于 BigInt:

进制转换

BigInt 类型还提供了进制转换的方法,使用 toString() 方法转换为字符串时,可以指定要使用的进制。

总结

BigInt 是 ECMAScript 2020 新引入的一种基本数据类型,可以方便地处理大整数,提高了 JavaScript 处理大数的能力。开发者们在处理大整数时,不再需要写冗余的代码和外部库,这将提高 JavaScript 的性能。了解和掌握 BigInt 的使用,对开发者们既有指导意义又有巨大的学习价值。

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

纠错
反馈