JavaScript ES11:BigInt 数字的运算及运算符的使用

在 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