在 JavaScript 中,数字的表示范围有限,最大整数值为 2^53 - 1,超出该范围的整数会导致精度丢失。ES9 新增了一种数据类型 BigInt,可以表示任意大小的整数。
BigInt 类型的定义与使用
BigInt 类型是以 n
结尾的整数,如 10n
、-10000000000000000000000000n
等。BigInt 值可以和普通数字进行加减乘除运算,也可以进行位运算,但不能和字符串直接拼接。
定义一个 BigInt 类型的变量,可以使用 BigInt()
函数或在数字后面加上 n
。
----- ------- - ------------ -- --- --- -- ------ -- ----- ---------- - ---------------------- -- ---- ------ --------- -
BigInt 类型的解析和格式化
与普通数字一样,BigInt 类型也可以进行解析和格式化。下面我们分别介绍一下 BigInt 类型的字符串解析和格式化。
BigInt 类型字符串的解析
由于 BigInt 类型字符串以 n
结尾,在解析时需要删掉 n
后再进行解析,可以使用 slice()
和 BigInt()
函数来实现。
----- --- - ------------------------ ----- ---------- - ------------------- ----- -- --------- ------ --
BigInt 类型的格式化输出
格式化输出时,可以将 BigInt 值转成字符串后在字符串上进行格式化,也可以使用 BigInt 实例的 toString()
方法进行转换并指定基数。
----- ---------- - ---------------------- ------------------- -- ------------------------ - ----------------------------- -- ------- -- -------------------- - -----------------
BigInt 和普通数字的转换
由于 BigInt 值可以表示非常大的整数,所以 BigInt 类型的值和普通数字是不能直接相互转换的,需要使用 BigInt 实例的 Number()
方法进行转换。
----- ---------- - ---------------------- ----- ------- - ------------------- -- -- ------ ------ ---- - - ------
总结
ES9 新增 BigInt 类型,可以很好地解决 JavaScript 中整数范围有限的问题。在使用 BigInt 类型时,需要注意它和普通数字的转换问题,以及解析和格式化问题。熟练掌握 BigInt 类型的使用方法,将能更好地编写 JavaScript 应用程序。
示例代码
----- --- - ------------------------ ----- ------- - ------------ -- --- --- -- ------ -- ----- ---------- - ---------------------- -- ---- ------ --------- - ----- --------- - ------------------- ----- -- --------- ------ -- ---------------- ------------- ----------------- ---------------- ------------------------- --------------- ------------------- -- ------------------------ - ----------------------------- ----- ------ - ------------------- -- ------ ----- ------ -- ------------------- ------- ------------
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/654704a57d4982a6eb168c50