在 JavaScript 中,数字的范围是有限制的。在 ES6 之前,JavaScript 只能表示 53 位的整数。对于超出此范围的数字,我们需要使用一些库或者其他工具来解决。
在 ES10 中,BigInt 类型被引入,它可以用来表示任意长度的整数。BigInt 可以用来解决 JavaScript 中数字范围限制的问题。
如何将数字转换为 BigInt?
在 JavaScript 中,我们可以使用 BigInt() 函数将数字转换为 BigInt 类型。下面是一个示例:
const num = 1234567890123456789012345678901234567890; const bigNum = BigInt(num); console.log(bigNum); // 1234567890123456789012345678901234567890n
在上面的示例中,我们首先定义了一个数字 num
,然后使用 BigInt()
函数将其转换为 BigInt 类型,并将结果赋值给 bigNum
变量。最后,我们使用 console.log()
函数输出 bigNum
变量的值。
BigInt 的运算
BigInt 支持与普通整数一样的加、减、乘、除等运算。下面是一些示例:
const a = 1234567890123456789012345678901234567890n; const b = 9876543210987654321098765432109876543210n; console.log(a + b); // 11111111111111111111111111111111111111100n console.log(a - b); // -8641975320864197532098765432108641975320n console.log(a * b); // 12193263113702179513482749867721042427775808428307692345679012345679012345780n console.log(a / b); // 0n
在上面的示例中,我们定义了两个 BigInt 类型的变量 a
和 b
,然后进行了加、减、乘、除等运算,并使用 console.log()
函数输出结果。
需要注意的是,在 BigInt 类型的除法运算中,如果结果是小数,那么小数部分会被截断,只保留整数部分。
BigInt 和普通整数的转换
有时候我们需要将 BigInt 类型的变量转换为普通整数,或者将普通整数转换为 BigInt 类型。在 JavaScript 中,我们可以使用 Number()
和 BigInt()
函数来进行转换。
下面是一些示例:
const a = 1234567890123456789012345678901234567890n; const b = Number(a); console.log(b); // 1.2345678901234568e+39 const c = 1234567890123456789012345678901234567890; const d = BigInt(c); console.log(d); // 1234567890123456789012345678901234567890n
在上面的示例中,我们首先定义了一个 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