在 ECMAScript 2018 中,BigInt 类型是一种新的原始数据类型,用于表示任意大小的整数。在 JavaScript 中,Number 类型只能表示 53 位的整数,而 BigInt 类型可以表示任意位数的整数,这使得 BigInt 类型在处理大整数时非常有用。
基本使用
要创建 BigInt 类型的值,只需要在整数后面加上 n
即可。
const bigInt = 1234567890123456789012345678901234567890n;
也可以使用 BigInt() 函数将其他类型的值转换为 BigInt 类型。
const bigInt1 = BigInt(123); const bigInt2 = BigInt('1234567890123456789012345678901234567890');
运算符
BigInt 类型支持所有标准的数学运算符,例如 +
、-
、*
、/
、%
、**
等。
-- -------------------- ---- ------- ----- - - -------------------------------- ----- - - -------------------------------- ------------- - --- -- ----------------------------------------- ------------- - --- -- -------------------------------- ------------- - --- -- ---------------------------------------------------------------------- ------------- - --- -- -- ------------- - --- -- ------------------------------- ------------- -- --- -- ----------- ------ --- --- -- -------
需要注意的是,使用 **
运算符时,指数必须是正整数且不能太大,否则会抛出 RangeError 错误。
方法
BigInt 类型还有一些有用的方法,例如 toString()
、valueOf()
、toJSON()
等。
const a = 123456789012345678901234567890n; console.log(a.toString()); // '123456789012345678901234567890' console.log(a.valueOf()); // 123456789012345678901234567890n console.log(JSON.stringify({ a })); // '{"a":"123456789012345678901234567890"}'
注意事项
使用 BigInt 类型时需要注意以下几点:
- 不能使用 Number 类型的运算符和方法,例如
Math.sqrt()
、Math.pow()
等。 - 不能与 Number 类型混合使用,需要进行类型转换。
- 不能使用 BigInt 类型作为对象的属性名。
示例代码
下面是一些使用 BigInt 类型的示例代码。
计算斐波那契数列第 100 项:
-- -------------------- ---- ------- -------- ------------ - --- - - --- --- - - --- --- ---- - - -- - - -- ---- - --- -- - --- - - --- - ------ -- - ---------------------------- -- ----------------------
计算组合数:
-- -------------------- ---- ------- -------- ------------ - --- ------ - --- --- ---- - - --- - -- -- ---- - ------ -- -- - ------ ------- - -------- -------------- -- - ----- --------- - ------------- ----- ----------- - ------------ - ----------- - --- ------ --------- - ------------ - ----------------------------- ------ -- -------------------------------
判断一个数是否为质数:
-- -------------------- ---- ------- -------- ---------- - -- -- -- --- - ------ ------ - -- -- -- --- - ------ ----- - -- -- - -- --- -- -- - - -- --- --- - ------ ------ - --- ---- - - --- - - - -- -- - -- --- - -- -- - - --- -- -- - - -- - --- --- --- - ------ ------ - - ------ ----- - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -- ----
总结
BigInt 类型是 ECMAScript 2018 中的一个重要新特性,它可以很好地处理大整数运算。使用 BigInt 类型时需要注意一些细节,但只要掌握了它的基本使用方式和注意事项,就可以在实际开发中灵活运用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c9683eadd4f0e0ff3318ac