在 JavaScript 中,数字类型是一种非常常见的数据类型。然而,由于其内部实现的限制,JavaScript 的数字类型只能表示一定范围内的整数和小数,对于超出这个范围的数字,就需要使用 BigInt 类型来表示。在 ES11 中,BigInt 类型被正式引入,为 JavaScript 的数字运算提供了更加丰富的功能。
BigInt 类型的定义和使用
BigInt 类型是一种新的原始数据类型,用于表示任意精度的整数。它的定义方法非常简单,只需要在一个整数后面加上 n
即可。例如:
----- - - -------------------------------- ----- - - -----------------------------------------
上面的代码分别使用了字面量和构造函数的方式定义了两个 BigInt 类型的变量。
与普通的数字类型不同,BigInt 类型的变量不能与普通的数字类型进行混合运算,否则会抛出错误。例如:
----- - - ----- ----- - - ---- ------------- - --- -- ---------- ------ --- ------ --- ----- -----
BigInt 类型的运算
BigInt 类型的运算与普通的数字类型类似,支持加、减、乘、除、取模等基本运算。同时,BigInt 类型还支持位运算和指数运算。
基本运算
BigInt 类型的加、减、乘、除、取模运算使用的是与普通的数字类型相同的运算符,即 +
、-
、*
、/
、%
。例如:
----- - - -------------------------------- ----- - - -------------------------------- ------------- - --- -- -------------------------------- ------------- - --- -- -------------------------------- ------------- - --- -- -------------------------------------------------------------- ------------- - --- -- -- ------------- - --- -- -------------------------------
需要注意的是,除法运算会向下取整,例如:
----- - - ---- ----- - - --- ------------- - --- -- --
位运算
BigInt 类型支持位运算,包括按位与、按位或、按位异或、左移和右移等运算。位运算的运算符与普通的数字类型相同,即 &
、|
、^
、<<
、>>
、>>>
。例如:
----- - - -------------------------------- ----- - - -------------------------------- ------------- - --- -- ------------------------------- ------------- - --- -- ------------------------------- ------------- - --- -- ------------------------------- ------------- -- ----- -- -------------------------------- ------------- -- ----- -- ---------------------------- ------------- --- ----- -- ----------------------------
需要注意的是,位运算只能用于 BigInt 类型的变量之间,不能与普通的数字类型进行混合运算。
指数运算
BigInt 类型还支持指数运算,即 **
运算符。例如:
----- - - -- -- ----- --------------- -- --------------------------------
需要注意的是,指数运算的结果仍然是 BigInt 类型,如果要将其转换为普通的数字类型,需要使用 Number()
或 parseInt()
函数进行转换。
BigInt 类型的常用方法
BigInt 类型还提供了一些常用的方法,例如 toString()
、valueOf()
、toLocaleString()
等。这些方法和普通的数字类型的方法类似,只不过返回的是 BigInt 类型的值。例如:
----- - - -------------------------------- -------------------------- -- -------------------------------- -------------------------------- -- ----------------------------------------- ------------------------- -- -------------------------------
总结
BigInt 类型的引入为 JavaScript 的数字运算提供了更加丰富的功能,使得 JavaScript 可以处理更加庞大的数字。当然,由于 BigInt 类型的引入是在 ES11 中才开始的,因此在有些浏览器中可能不支持 BigInt 类型。如果需要在旧版本的浏览器中使用 BigInt 类型,可以使用第三方库或者手写实现。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6603ee74d10417a22206d89f