在 ES12 中,BigInt 类型被引入,用于表示任意长度的整数。与普通的 Number 类型相比,BigInt 支持更大的数字范围,甚至可以表示整数的最大值,同时也避免了 Number 类型中精度丢失的问题。在实际开发中,我们有时需要在 BigInt 和 Number 之间进行转换,接下来我们就来讨论一下 ES12 中 BigInt 转 Number 和 Number 转 BigInt 的相互转换。
BigInt 转 Number
将 BigInt 类型转换为 Number 类型非常简单,只需要使用 Number() 函数即可,如下所示:
----- -------- - ------------------------------- - ---------- -- --- --------- -- -- ----- -------- - ----------------- --------------------- -- -------------- -- -------- -- ----------------- --------------------- -- -------------- -- -------- -- ----------------
在这里,我们首先定义了一个 BigInt 类型的变量 myBigInt,它的值为 Number 类型中的最大安全整数加上 1。然后我们使用 Number() 函数将 myBigInt 转换为了 Number 类型,并将转换后的值赋予了 myNumber 变量。最后我们打印出了这两个变量的值,可以看到它们分别是 BigInt 类型和 Number 类型的值。
需要注意的是,将一个超出安全整数范围的 BigInt 转换成 Number 类型时,会发生精度丢失的问题,因此这种转换只适用于 BigInt 小于或等于 Number 类型中的最大安全整数的情况。
Number 转 BigInt
将 Number 类型转换为 BigInt 类型比较麻烦,因为 BigInt、Number 两者类型不同,我们需要在将 Number 类型转换为 BigInt 类型时,确保BigInt不会发生精度丢失。为了达到这个目的,我们可以使用 BigInt() 函数,并将 Number 类型数据在传递给 BigInt() 前进行一定的处理。
----- -------- - ----------------- ----- -------- - ---------------------- --------------------- -- -------------- -- -------- -- ---------------- --------------------- -- -------------- -- -------- -- -----------------
在这个例子中,我们定义了一个 Number 类型的变量 myNumber,它的值超出了 BigInt 中能够表示的范围。为了将它转换为 BigInt 类型,我们将它首先转换为字符串,然后使用 BigInt() 函数将字符串转换为 BigInt 类型。在这里,需要注意的是,我们需要将超过安全整数范围的 Number 数据转换成 BigInt 类型时,一定要使用字符串模板,并在模板字符串前加上 $ 符号,将 Number 类型的变量转换为字符串,否则 Number 数据将会发生精度丢失。
总结
在 ES12 中,BigInt 提供了一种新的方法来表示超大整数,与普通的 Number 类型相比,BigInt 支持更大的数字范围,并避免了精度丢失的问题。在实际开发中,我们可能需要在 BigInt 和 Number 之间进行转换。通过本文章的学习,我们了解了如何将 BigInt 类型转换为 Number 类型以及如何将 Number 类型转换为 BigInt 类型。希望这篇文章能够对你有所帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64aba9e848841e9894779eb9