在 ECMAScript 2021 中,BigInt 是一个新的原始数据类型,用于表示任意精度的整数。在 JavaScript 中,Number 类型只能表示 53 位的整数,而 BigInt 可以表示更大的整数。本文将介绍 BigInt 的语法、用法和示例,以帮助您更好地理解 BigInt。
声明 BigInt
在 JavaScript 中,BigInt 可以通过在数字后面加上 "n" 来声明。例如,要声明 12345678901234567890 为 BigInt 类型,可以这样写:
const bigNum = 12345678901234567890n;
运算符
BigInt 可以使用与 Number 相同的运算符进行计算,包括加、减、乘、除和取模。例如:
const a = 12345678901234567890n; const b = 98765432109876543210n; console.log(a + b); // 111111111111111111100n console.log(a - b); // -86419753208641975320n console.log(a * b); // 1219326311370217959347581028390526317900n console.log(a / b); // 0n console.log(a % b); // 12345678901234567890n
需要注意的是,BigInt 与 Number 不能混合使用,否则会抛出 TypeError:
const a = 12345678901234567890n; const b = 98765432109876543210; console.log(a + b); // TypeError: Cannot mix BigInt and other types, use explicit conversions
在这种情况下,需要将 Number 类型转换为 BigInt 类型,例如:
const a = 12345678901234567890n; const b = 98765432109876543210; console.log(a + BigInt(b)); // 111111111111111111100n
方法
BigInt 还提供了一些方法,用于在 BigInt 值上执行操作。例如,BigInt 有一个 toLocaleString() 方法,可以将 BigInt 转换为本地化的字符串表示:
const bigNum = 12345678901234567890n; console.log(bigNum.toLocaleString()); // 12,345,678,901,234,567,890
BigInt 还有一些其他的方法,例如 toString()、valueOf()、bitwise 运算等,您可以在 MDN 文档 中查看更多信息。
示例
下面是一个使用 BigInt 的示例,用于计算斐波那契数列的第 n 项:
-- -------------------- ---- ------- -------- ------------ - --- - - --- --- - - --- --- ---- - - -- - - -- ---- - --- ---- - -- - - -- - - ---- - -- - ------ -- - ---------------------------- -- ----------------------
在这个例子中,我们使用了 BigInt 类型的变量 a、b 和 temp,以及 BigInt 的加法运算符。由于 BigInt 可以表示更大的整数,所以我们可以计算更高的斐波那契数列项。
结论
在 ECMAScript 2021 中,BigInt 是一个新的原始数据类型,用于表示任意精度的整数。BigInt 可以使用与 Number 相同的运算符进行计算,也提供了一些方法,用于在 BigInt 值上执行操作。BigInt 的出现可以帮助 JavaScript 处理更大的整数,同时也提供了更多的可能性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6760e32403c3aa6a5606174b