JavaScript - 幂(指数)运算符
幂运算符
JavaScript 中的幂(指数)运算符表示为**。幂运算符接受两个操作数,并返回第一个操作数的幂乘以第二个操作数的幂。
幂运算符也可以接受 BigInt 数据类型的变量作为操作数。此外,它遵循结合律,这意味着 a**b**c 和 a**(b**c) 表达式的结果相同。
幂运算符从右到左计算表达式的值。
语法
我们应该遵循以下语法来使用幂运算符。
let pow = x ** y;
返回值
返回将第一个操作数 (x) 提升到第二个操作数 (y) 次幂的结果。
示例
让我们通过一些示例来详细了解幂运算符。
示例
下面的示例定义了包含值 2 和 3 的变量 p 和 q。之后,我们使用幂运算符得到了 PQ。在输出中,您可以看到"pow"变量的值为 23,等于 8。
<html>
<body>
<div id = "output"></div>
<script>
let p = 2;
let q = 3;
let pow = p ** q;
document.getElementById("output").innerHTML =
"The value of p ** q: " + pow;
</script>
</body>
</html>
它将产生以下结果 -
The value of p ** q: 8
示例:幂运算符的结合律
此示例演示了幂运算符遵循结合律,并从右到左计算表达式。
两个表达式均在输出中打印 6561,等于 38,其中 8 等于 23。
<html>
<body>
<div id="output"></div>
<script>
let p = 3;
let q = 2;
let r = 3;
let pow1 = p ** q ** r;
let pow2 = p ** (q ** r);
document.getElementById("output").innerHTML =
"pow1 = " + pow1 + "<br>" +
"pow2 = " + pow2;
</script>
</body>
</html>
它将产生以下结果 -
pow1 = 6561 pow2 = 6561
示例:使用 BigInt 变量进行指数运算
以下示例演示了指数运算运算符也可以用于 BigInt 变量。它在输出中返回 BigInt 值。
<html>
<body>
<div id = "output"></div>
<script>
let p = 10000000000000000000000000000n;
let q = 2n;
let pow = p ** q;
document.getElementById("output").innerHTML = "pow = " + pow;
</script>
</body>
</html>
它将产生以下结果 -
pow = 100000000000000000000000000000000000000000000000000000000
示例:使用非数字值的幂运算符
当使用非数字值作为幂运算符的操作数时,它会将该值转换为数字并返回结果。如果操作数无法转换为数字值,则在输出中返回 NaN。
此处,它将"[]"转换为 0 并给出正确的结果。字符串"2a"的数字值为 NaN,因此它会在输出中打印 NaN。如果数组包含单个数字元素,则解析该元素。否则,如果数组包含多个元素,则计算 NaN。
<html>
<body>
<div id = "output"></div>
<script>
const output = document.getElementById("output");
let pow = 2 ** []; // Number([]) = 0
output .innerHTML = "10 ** [] = " + pow + "<br>";
pow = [] ** 2; // Number([]) = 0
output.innerHTML += "[] ** 2 = " + pow + "<br>";
pow = 2 ** [2]; // Number([2]) = 2
output.innerHTML += "10 ** [2] = " + pow + "<br>";
pow = "2" ** 2; // Number("2") = 2
output.innerHTML += "2 ** 2 = " + pow + "<br>";
pow = "2a" ** 2; // Number("2a") = NaN
output.innerHTML += "2a ** 2 = " + pow + "<br>";
pow = [2, 3] ** 2; // Number([2, 3]) = NaN
output.innerHTML += "[2, 3] ** 2 = " + pow + "<br>";
</script>
</body>
</html>
它将产生以下结果 -
10 ** [] = 1 [] ** 2 = 0 10 ** [2] = 4 2 ** 2 = 4 2a ** 2 = NaN [2, 3] ** 2 = NaN
指数运算符是 Math() 对象的 pow() 方法的替代方法。

