介绍
ES11 是 JavaScript 的最新标准,也被称为 JavaScript 2020。其中的一个新特性是 BigInt,它是一种可以表示任意大整数的数值类型。在以前的 JavaScript 中,最大能表示的整数是 2^53-1,而 BigInt 可以表示更大的整数,因此在处理大整数的情况下非常有用。
定义
在 JavaScript 中,BigInt 类型的数值必须以后缀“n”作为标识符。例如:
const bigInteger = 1234567890123456789012345678901234567890n;
基本操作
BigInt 支持所有常见的数值操作,如加减乘除、取余、指数等。与常规数值类型不同的是,BigInt 不支持位运算和自增/自减运算符。
示例代码:
-- -------------------- ---- ------- ----- ----------- - ------------------------------------------ ----- ----------- - ------------------------------------------ -- -- ----- ------- - ----------- - ------------ --------------------- -- ------------------------------------------ -- -- ----- ------- - ----------- - ------------ --------------------- -- ------------------------------------------ -- -- ----- ------- - ----------- - ------------ --------------------- -- --------------------------------------------------------------------------------- -- -- ----- ------- - ----------- - ------------ --------------------- -- -- -- -- ----- ------- - ----------- - ------------ --------------------- -- ------------------------------------- -- -- ----- ------- - ----------- -- --- --------------------- -- --------------------------------------------------------------------------------------------------------------------------------------------------------------
类型转换
在 BigInt 与其他类型之间进行转换时,需要使用 BigInt() 和 Number() 方法进行转换。
示例代码:
-- -------------------- ---- ------- ----- ---------- - ------------------------------------------ -- ------ -- ------ ----- ------ - ------------------- -------------------- -- -- ---------- -------- ------ ------- -- ------ -- ------ ----- ----------- - --------------- ------------------------- -- ------------- ------ -------
比较运算
在比较运算时,可以使用常规的运算符进行比较,也可以使用比较运算符(<、>、<=、>=、==、!=)进行比较。需要注意的是,当使用常规运算符进行比较时,需要将比较的两个数值都转换成 BigInt 类型。
示例代码:
const bigInteger1 = 1234567890123456789012345678901234567890n; const bigInteger2 = 9876543210987654321098765432109876543210n; console.log(bigInteger1 > bigInteger2); // false console.log(bigInteger1 < bigInteger2); // true console.log(bigInteger1 == bigInteger2); // false console.log(bigInteger1 != bigInteger2); // true
效率
使用 BigInt 进行运算的效率要低于使用常规数字进行运算。因此,在处理大量数据时需要特别注意效率问题。
结论
ES11 中新增的 BigInt 类型为 JavaScript 处理大整数问题提供了新的便利,而且在实际使用过程中不需要过多的代码改动。在处理大量数据时,需要特别注意效率问题。
参考资料
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67190c41ad1e889fe22fa799