ES11 介绍 Part 1:BigInt

阅读时长 4 分钟读完

ES11(也称为 ES2020)是 JavaScript 语言的最新版本,它引入了几个新的特性和概念。其中一个最引人注目的新特性之一是 BigInt,我们今天就来详细介绍一下这个新的数据类型。

什么是 BigInt?

在 JavaScript 中,数字是以 64 位浮点型数值的形式存储的,这意味着 JavaScript 可以表示 $2^{53}$ 以内的整数,并可以表示小数和负数。如果你需要处理大于 $2^{53}$ 的整数,你要么使用字符串,要么使用一个大数库(如 BigInteger.jsbignumber.js)。在 ES11 中,我们有一个新的数据类型,BigInt,这比使用字符串或大数库要方便得多。

BigInt 可以支持任意长度的整数。在 JavaScript 中,BigInt 的表示方式非常简单:给整数数字后加一个 n 或 N 后缀。例如,以下代码可以创建两个较大的 BigInt:

如何使用 BigInt?

使用 BigInt 和普通数字的语法非常类似。因为 BigInt 是一个新的数据类型,它有自己的一些操作符和函数。例如,以下代码演示了使用 BigInt 进行一些简单运算的方式:

从上面的代码中,我们可以看到大数运算在语法和操作符方面都和普通数字十分相似。这样的语法让我们编写需要使用大整数算法的代码更加容易和清晰。

注意事项

BigInts 有一些限制和注意事项需要考虑。首先,BigInts 是一种新的数据类型,不是数字,所以无法在普通数字和 BigInt 之间直接进行运算。例如:

出现 TypeError 的原因在于,我们不能将 BigInt 和普通数字混合使用。在这种情况下,JavaScript 引擎抛出了一个 TypeError。而解决方案也很简单:对普通数字进行显式转换。例如:

第二个需要注意的事项是 BigInts 和普通数字之间是不能进行比较运算的。例如:

由于这两个值的数据类型不同,所以它们不能进行比较。

指导意义:

BigInt 是一个小型但重要的特性,它可以将存储和处理超过 $2^{53}$ 的整数变得容易。BigInt 不仅可以在开发中直接使用,而且可以用于各种算法问题,因为其使用循环和条件逻辑非常容易。如果你发现自己需要存储或操作大整数,BigInt 是一个非常有用的数据类型,你应该考虑使用它。

总结

在本篇文章中,我们已经介绍了 BigInt,这是 JavaScript 中一个非常新的和强大的数据类型。BigInt 可以处理任意长度的整数,可以大大简化编写大数运算代码的工作。在下一篇文章中,我们将继续探讨 ES11 的其它新特性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/646896dd968c7c53b08c51ea

纠错
反馈