了解 ES10 中的 BigInt:如何将数字转换为 BigInt?

在 JavaScript 中,数字的范围是有限制的。在 ES6 之前,JavaScript 只能表示 53 位的整数。对于超出此范围的数字,我们需要使用一些库或者其他工具来解决。

在 ES10 中,BigInt 类型被引入,它可以用来表示任意长度的整数。BigInt 可以用来解决 JavaScript 中数字范围限制的问题。

如何将数字转换为 BigInt?

在 JavaScript 中,我们可以使用 BigInt() 函数将数字转换为 BigInt 类型。下面是一个示例:

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

在上面的示例中,我们首先定义了一个数字 num,然后使用 BigInt() 函数将其转换为 BigInt 类型,并将结果赋值给 bigNum 变量。最后,我们使用 console.log() 函数输出 bigNum 变量的值。

BigInt 的运算

BigInt 支持与普通整数一样的加、减、乘、除等运算。下面是一些示例:

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

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

在上面的示例中,我们定义了两个 BigInt 类型的变量 ab,然后进行了加、减、乘、除等运算,并使用 console.log() 函数输出结果。

需要注意的是,在 BigInt 类型的除法运算中,如果结果是小数,那么小数部分会被截断,只保留整数部分。

BigInt 和普通整数的转换

有时候我们需要将 BigInt 类型的变量转换为普通整数,或者将普通整数转换为 BigInt 类型。在 JavaScript 中,我们可以使用 Number()BigInt() 函数来进行转换。

下面是一些示例:

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

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

在上面的示例中,我们首先定义了一个 BigInt 类型的变量 a,然后使用 Number() 函数将其转换为普通整数,并将结果赋值给 b 变量。最后,我们使用 console.log() 函数输出 b 变量的值。

接着,我们定义了一个普通整数 c,然后使用 BigInt() 函数将其转换为 BigInt 类型,并将结果赋值给 d 变量。最后,我们使用 console.log() 函数输出 d 变量的值。

需要注意的是,在将 BigInt 类型的变量转换为普通整数时,如果结果超出了普通整数的范围,那么结果会变为 Infinity 或者 -Infinity。在将普通整数转换为 BigInt 类型时,如果数字超过了 BigInt 类型的范围,那么转换后的结果将不准确。

总结

在 JavaScript 中,BigInt 类型可以用来表示任意长度的整数,解决了数字范围限制的问题。我们可以使用 BigInt() 函数将数字转换为 BigInt 类型,并进行加、减、乘、除等运算。同时,我们也可以将 BigInt 类型的变量转换为普通整数,或者将普通整数转换为 BigInt 类型。在使用 BigInt 类型时,需要注意其与普通整数之间的转换,以及数字的范围限制等问题。

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