介绍
BigInt 是 ES7 中新增的一种类型,它允许我们使用任意精度的整数,解决了 JavaScript 在处理大数时出现的精度问题。在旧版本中,JavaScript 只能处理 53 位精度内的整数,而 BigInt 可以处理任意位数的整数,能更好地满足现代应用的需求。
在本文中,我们将会介绍 BigInt 的语法和使用方法,并且会有一些示例代码帮助读者更加深入地理解这个新特性。
BigInt 的使用
基本用法
BigInt 的值需要以后缀 n 结尾,否则会被当做 Number 类型处理。创建一个 BigInt 变量可以使用 BigInt() 函数:
const num = BigInt(100); // 100n
除此之外,我们还可以直接使用后缀 n 来创建 BigInt 变量:
const num = 1234567890123456789012345678901234567890n;
从控制台输出,我们也能够看到 BigInt 变量的值:
console.log(num); // 1234567890123456789012345678901234567890n
BigInt 和 Number 的操作
因为 BigInt 可以处理超出 Number 范围的整数,所以 BigInt 及 Number 之间是不能互相运算的,否则会报错。如果我们需要进行 BigInt 和 Number 之间的操作,可以使用 BigInt() 函数将 Number 类型的值转换成 BigInt 类型:
const num1 = BigInt(100); const num2 = 200; console.log(num1 + BigInt(num2)); // 300n
BigInt 和 Number 之间只有一种操作是允许的,就是比较运算符(>, <, >=, <=)。这是因为在进行比较时,BigInt 变量会被转换成字符串再与 Number 进行比较。
BigInt 支持的操作
BigInt 支持大部分 Number 支持的操作符,比如加减乘除、取余、幂运算等等。在 BigInt 中使用这些操作符和普通数字类型没有太大的区别:
-- -------------------- ---- ------- ----- ---- - ----------------------------- ----- ---- - ------------ ---------------- - ------ -- --------------------- ---------------- - ------ -- --------------------- ---------------- - ------ -- ---------------------- ---------------- - ------ -- ------------------- ---------------- - ------ -- --- ---------------- -- ------ -- ---------------------------------------------
BigInt 和 Math 对象的操作
在 Math 对象中,只有一些特殊的方法支持 BigInt 类型的参数,比如 Math.pow。如果我们想要使用 BigInt 做幂运算,需要使用 BigInt 对象的内置方法,比如 ** 运算符。
const num = BigInt(1234567890123456789); console.log(Math.pow(num, 2)); // Infinity console.log(num ** 2); // 15241578753238836750190521n
总结
我们在本文中对 ES7 中新增的 BigInt 类型进行了介绍,讲解了它的语法和使用方法,并且举了一些实例帮助读者加深对这个新特性的理解。相信掌握 BigInt 将会有助于我们在处理大型数值时更加灵活,为开发大型应用提供更好的支持。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651d1f5595b1f8cacd4a3eb7