ES11 的幸运 Number:BigInt

在 JavaScript 中,数字类型是非常常见的数据类型之一。然而,在过去的版本中,JavaScript 对于数字类型有一定的限制,最大值只能达到 $2^{53}$,而且无法精确表示大于这个值的数字。这在某些场景下,比如处理大型整数运算时,会带来不少麻烦。为了解决这个问题,ES11 新增了一种新的数字类型:BigInt。

BigInt 的定义

BigInt 是一种新的数字类型,用来表示大整数,它可以精确表示任意大的整数,而不会丢失精度。BigInt 类型的值可以被表示为任意大小的整数,只要内存足够大。

BigInt 类型的值可以使用后缀 n 来区分,例如:

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

BigInt 的使用

BigInt 的使用与 Number 类型的使用非常相似,可以进行基本运算,例如加、减、乘、除等操作。同时,BigInt 也支持比较运算,例如等于、不等于、大于、小于等操作。

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

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

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

需要注意的是,BigInt 类型的值和 Number 类型的值不能进行混合运算,否则会报错。

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

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

BigInt 的转换

由于 BigInt 类型的值和 Number 类型的值不能进行混合运算,因此在实际应用中,需要进行类型的转换。BigInt 可以通过 Number() 函数进行转换,而 Number 也可以通过 BigInt() 函数进行转换。

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

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

需要注意的是,将一个非常大的 Number 类型的值转换为 BigInt 类型的值时,可能会导致精度的丢失。

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

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

BigInt 的应用场景

BigInt 类型的出现,主要是为了解决 Number 类型在处理大整数时的精度问题。因此,BigInt 类型的应用场景主要是在处理需要精度较高的大整数运算时。

例如,RSA 加密算法中使用的大整数运算,就可以使用 BigInt 类型来实现。

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

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

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

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

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

总结

BigInt 类型是 ES11 中新增的一种数字类型,用来表示大整数,可以精确表示任意大的整数,而不会丢失精度。BigInt 类型的值可以进行基本运算和比较运算,但不能与 Number 类型的值进行混合运算。在实际应用中,BigInt 类型主要用于处理需要精度较高的大整数运算。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66416d60d3423812e4f6faab