在 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