在传统的 JavaScript 中,数字类型的最大范围是 2 的 53 次方,也就是 9007199254740992,当我们需要处理比这个大的数时,就需要使用一些数学库来处理。但是在 ES11 中,新增了一个 BigInt 类型,可以实现 JavaScript 中数字的无限扩展。
什么是 BigInt?
BigInt 是一种新的 JavaScript 原始数据类型,用于表示大整数。与 number 类型不同,它没有固定的上限,可以表示任意大的整数。
创建一个 BigInt 可以使用 "n" 后缀,如下所示:
const bigNumber = 100n;
如何使用 BigInt?
BigInt 支持所有 number 类型所支持的操作符,如加减乘除、位运算等,同时还支持比较运算符。但是需要注意的是,BigInt 与 number 类型之间不能互相运算,需要使用 BigInt() 函数将 number 转化为 BigInt。
const a = 123n; const b = BigInt(456); const c = a + b; // 正确,返回 BigInt 类型的 579n const d = 123; const e = 456n; const f = d + e; // 错误,不能将 number 类型与 BigInt 类型相加 const g = BigInt(d) + e; // 正确,将 d 转化成 BigInt 类型
BigInt 的应用场景
BigInt 主要用于处理需要精度较高的数字计算,例如加密、哈希等场景。下面以斐波那契数列为例,介绍 BigInt 的应用:
function fibonacci(n) { let a = 0n, b = 1n, i = 0n; while (i++ < n) [a, b] = [b, a + b]; return a; } console.log(fibonacci(1000)); // 返回一个 209 巨大的数字
总结
BigInt 是 ES11 新增的原始数据类型,用于表示大整数,可以实现 JavaScript 中数字的无限扩展。但是需要注意的是,BigInt 与 number 类型之间不能互相运算,需要使用 BigInt() 函数将 number 转化为 BigInt。BigInt 主要用于处理需要精度较高的数字计算,例如加密、哈希等场景。
在实际的开发中,BigInt 可以用于实现高精度计算,例如处理加密算法中的大数运算、处理时间戳等,具有很高的应用价值。同时,BigInt 也是目前 JavaScript 开发中比较前沿的技术,学习和应用它有助于提升自己的技术水平。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6502ca7795b1f8cacd0024a7