ECMAScript 2017 中的新数据类型 --BigInt 详解

#ECMAScript 2017 中的新数据类型 --BigInt 详解

在最新的ECMAScript 2017(ES8)中,新添加了一种数据类型BigInt, 可以在JavaScript中表示任意精度的整数,进一步扩展了JavaScript的能力。在本文中,我们将详细介绍BigInt的用法和指导意义。

BigInt是什么?

在JavaSctipt中,Number类型可以表示的整数范围是[-2^53, 2^53], 若超出此范围则会出现精度丢失或者数据溢出。BigInt则可以处理超出Number范围的整数。

BigInt类型的值是一个任意精度的整数,可以用任意长度的二进制补码表示。使用n后缀或者调用BigInt()函数创建BigInt。一般情况下,我们使用n后缀结尾的数字表示BigInt类型,例如:

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

注意,BigInt类型必须以n结尾, 否则会被解释为Number类型。

BigInt常见问题

如何进行运算

BigInt的运算方式与Number大致相同,包括四则运算,位运算等等。例如:

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

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

同样也可以使用比较运算符,例如:

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

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

BigInt与Number混用

在BigInt与Number混用的情况下,会导致类型不匹配错误。因此需要进行类型转换,具体方式如下:

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

BigInt和字符串的互相转换

将BigInt转成字符串可以通过在数字后面添加toString()方法:

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

将字符串转成BigInt可以使用BigInt()方法,注意BigInt支持十进制、十六进制和八进制三种字符串格式:

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

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

与此同时,需要注意BigInt类型不支持默认的数学运算和自增自减运算。因此如果需要操作BigInt类型,需要使用BigInt类型的运算方式。

BigInt未来展望

BigInt类型的出现,从一定程度上扩展了JavaScript的数据类型,使得这门语言越来越适合于大数据处理,特别是对于数字计算密集型应用场景。BigInt在未来或许会被用于加密领域,进一步提高数据隐私保护能力。

结论

BigInt 在ES8的提供增加了JavaScript处理大型数字长整形的能力。 BigInt的出现,进一步拓展了JavaScript的数据类型,使得这门语言越来越适合于大数据处理,特别是对于数字计算密集型应用场景。另外,与此同时,也需要开发者们在代码编写中注意BigInt类型和Number类型互换造成的问题。

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