ECMAScript 2020 中的新特性之六:BigInt

阅读时长 5 分钟读完

在 ECMAScript 2020 标准中,新增了一个全新的类型 BigInt,通过引入 BigInt 类型,JavaScript 程序员现在可以在开发过程中更加方便地处理大数值,同时在表示和计算大整数时也可以避免数值计算溢出的问题。

BigInt 类型

BigInt 类型是一种全新的数值类型,它允许我们表示具有任意精度的数值。在语法上,BigInt 使用正整数,但是它不跟随 Number 类型的 IEEE-754 标准,所以 BigInt 类型可以表示比 Number 类型更大的数值,最大值的表示范围可达 $2^{53}-1$,而 BigInt 类型不受此限制。

声明 BigInt 类型的变量时,需要以大写字母 N 结尾:

BigInt 的运算

BigInt 类型支持 Number 类型中的大多数运算符,并新增了一些运算符。

基本运算符

比较运算符

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

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

其他运算符

BigInt 中还新增了 ** 幂运算符(后置)

BigInt 的类型转换

BigInt 类型只支持转换成字符串、Number 类型、BigInt 类型,并且我们可以通过字符串、Number 类型或者 BigInt 类型来实现 BigInt 之间的转换。

字符串转为 BigInt

Number 转换为 BigInt

由于 Number 类型可能存在计算精度的问题,所以在将 Number 类型转换为 BigInt 类型时需要注意是否会产生溢出的问题:

BigInt 转换为字符串

BigInt 转换为 Number

需要注意在将 BigInt 转换为 Number 类型时,如果 BigInt 的数值范围超出了 Number 的最大表示范围,会产生精度丢失的问题:

BigInt 与正常数值的混用

在处理 BigInt 类型时,不能直接与 Number 类型进行运算,需要通过类型转换来一起参与数值运算。

总结

BigInt 类型的引入给 JavaScript 中处理大数值的程序带来了很大的方便。在日常的开发中,我们经常会需要使用 BigInt 类型的功能,尤其是在一些涉及到加密算法、大型计算、金融领域等方面。我们可以通过以上的介绍来理解 BigInt 类型的基本特点和使用方式,以及注意与正常数值的混用等问题。

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

纠错
反馈