#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