解密 ES10 中新增的 BigInt 数据类型

阅读时长 4 分钟读完

在 ES10 中,新增了一种基本数据类型 BigInt,它可以表示任意精度的整数,解决了 JavaScript 中 Number 类型的精度问题。BigInt 类型可以表示的整数范围是 -2^53 + 1 到 2^53 - 1 之间的整数,超出这个范围的整数可以用 BigInt() 构造函数进行创建。

如何创建 BigInt

创建 BigInt 可以使用 BigInt() 构造函数,也可以在整数的末尾添加 n 或 N 来表示 BigInt 类型。

BigInt 的运算

BigInt 类型支持基本的数值运算,包括加、减、乘、除以及取模。需要注意的是,BigInt 类型和 Number 类型之间不能进行运算,需要先将 Number 类型转换为 BigInt 类型。

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

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

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

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

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

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

BigInt 的比较

BigInt 类型支持比较运算符,包括 <、>、<=、>=、==、!=。需要注意的是,BigInt 类型和 Number 类型之间不能进行比较,需要先将 Number 类型转换为 BigInt 类型。

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

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

BigInt 的转换

将 BigInt 类型转换为 Number 类型可以使用 Number() 函数,但是需要注意的是,如果 BigInt 类型的整数超出了 Number 类型的范围,转换后会丢失精度。

将 Number 类型转换为 BigInt 类型可以使用 BigInt() 构造函数。

总结

BigInt 类型是 ES10 中新增的一种基本数据类型,它可以表示任意精度的整数,解决了 JavaScript 中 Number 类型的精度问题。在使用 BigInt 类型时,需要注意不能和 Number 类型进行运算和比较,需要先进行类型转换。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6603c924d10417a222043c9f

纠错
反馈