介绍
ECMAScript 2020 中新增了一个新的数据类型:BigInt。BigInt 是一种用来表示任意精度整数的原始数据类型,解决了 JavaScript 中整数精度有限的问题。在过去,如果需要处理非常大的整数,我们通常使用第三方库或者将整数转化为字符串来处理。但是这种方法不仅麻烦,而且性能也不够优秀。现在,有了 BigInt 数据类型,我们可以方便地直接操作非常大的整数,而不需要考虑精度问题。
使用
要使用 BigInt,我们需要在数字后添加 "n" 或者使用 BigInt() 方法来创建 BigInt 对象。例如:
----- ------- - ---------------------- ----- ------- - -------------------------------
我们可以直接对 BigInt 进行算术运算:
----- ------- - ---------------------- ----- ------- - ------------------------------- ----- ------- - ------- - -------- ----- ------- - ------- - --------
如果 BigInt 和普通 Number 进行运算,则普通 Number 会被转换为 BigInt 对象,例如:
----- ------- - ---------------------- ----- ---- - ---- ----- ------ - ------- - ----- -- ------ - ------ --
我们可以使用 BigInt.asIntN() 和 BigInt.asUintN() 方法将 BigInt 转换为有限位数的值:
----- --- - --------- -- --- - ---- ----- -------- - --- - --- ----- -------- - ------------------ ----- ----- ------------- - ------------------ ---------- --------------------------------- -- ---------------------- -------------------------------------- -- ---
我们也可以将 BigInt 转换为字符串,并可以指定进制数:
----- ------ - ---------------------- ------------------------------- -- ---------------------- --------------------------------- -- ------------------
注意事项
虽然 BigInt 看起来很好用,但是需要注意的是,它不能与普通 Number 进行混合计算。例如:
----- ------ - ---------------------- ----- --- - ---- ----- ------ - ------ - ---- -- --
如果需要进行混合计算,需要将 BigInt 转换为 Number,例如:
----- ------ - ---------------------- ----- --- - ---- ----- ------ - -------------- - ----
另外,与普通 Number 类型不同,BigInt 类型不能使用 Math 对象中的方法。
总结
通过本文的介绍,我们了解了 ECMAScript 2020 中新增的 BigInt 数据类型,学习了如何使用 BigInt 进行算术运算、字符串转换和转换为特定位数的整数值。但是,需要注意的是,不能将 BigInt 与普通 Number 进行混合计算。在实际开发中,应该根据实际需求选择合适的数据类型,避免不必要的精度问题。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64e58b22f6b2d6eab30ffe51