在 JavaScript 中,数字类型被存储在 64 位二进制格式中,因此可以表示的最大整数值为 2 的 53 次方减 1,即 9007199254740991。超过这个值,就会发生整数溢出。
为了解决这个问题,ES12 引入了 BigInt 类型,它可以表示任何整数,不受上限限制。
BigInt 类型的基本介绍
BigInt 类型是一种基本数据类型,在 JavaScript 中以后缀 n
表示。例如,可以将 100n
表示为 BigInt 类型的常量。
为了声明 BigInt 类型的变量,需要在数字后面添加 n
后缀。例如:
let bigIntNum = 100n; console.log(bigIntNum); // => 100n
BigInt 类型的支持除了数字类型外,还可以进行基本的运算操作,如加、减、乘、除、取余等。
BigInt 类型的操作方式
BigInt 类型的运算
BigInt 类型的运算是与普通的数字类型有所不同的。因为 BigInt 类型可以表示的值比数字类型大得多,所以它不能直接与数字类型进行运算。
若要对 BigInt 类型进行运算,需要使用 BigInt() 函数:
let bigIntNum = 100n; let result = bigIntNum * BigInt(10); console.log(result); // => 1000n
BigInt 类型的内置方法
BigInt 类型还具有一些内置方法,可以方便地处理 BigInt 类型的整数。
toString()
可以使用 toString() 将 BigInt 类型转换为字符串类型:
let bigIntNum = 100n; let result = bigIntNum.toString(); console.log(result); // => "100"
parseFloat() 和 parseInt()
BigInt 类型的 parseInt() 和 parseFloat() 方法与数字类型相同,除了在 BigInt 类型使用时,需要添加 BigInt 对象:
let bigIntNum = BigInt(100); let result = parseInt(bigIntNum.toString()); console.log(result); // => 100
BigInt 类型的应用场景
BigInt 类型的应用场景,主要体现在对于大整数的高效操作,如以下示例:
let num1 = 9007199254740991n; let num2 = 1n; console.log(num1 * num2); // => 9007199254740991n let num3 = num1 ** 2n; console.log(num3); // => 81129638414606663681390495662081n
总结
在 JavaScript 中,BigInt 类型是一种新的基本数据类型,它可以表示任何整数,不受上限限制。BigInt 类型的运算与数字类型不同,需要使用 BigInt() 函数,同时也具有一些内置方法,如 toString()、parseFloat() 和 parseInt() 等。应用场景主要体现在对于大整数的高效操作。使用 BigInt 类型可以更好地解决 JavaScript 的整数溢出问题,并提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64570226968c7c53b09e1509