JavaScript 中的指数运算符表示为 **
。指数运算符接收两个操作数并返回第一个操作数被提升到第二个操作数的幂的结果。
指数运算符也可以接受 BigInt 数据类型的变量作为操作数。此外,它遵循结合性特性,这意味着表达式 a**b**c
和 a**(b**c)
会产生相同的结果。
指数运算符从右向左计算表达式。
语法
我们应该按照以下语法使用指数运算符:
let pow = x ** y;
返回值
它返回将第一个操作数(x)提升到第二个操作数(y)的幂的结果。
示例
让我们通过一些示例详细了解指数运算符。
示例
下面的示例定义了包含 2 和 3 值的 p 和 q 变量。之后,我们使用指数运算符获取 PQ。在输出中,你可以看到 'pow' 变量的值为 2^3,等于 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,等于 3^8,其中 8 等于 2^3。
<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 ** [];
output .innerHTML = "10 ** [] = " + pow + "<br>";
pow = [] ** 2;
output.innerHTML += "[] ** 2 = " + pow + "<br>";
pow = 2 ** [2];
output.innerHTML += "10 ** [2] = " + pow + "<br>";
pow = "2" ** 2;
output.innerHTML += "2 ** 2 = " + pow + "<br>";
pow = "2a" ** 2;
output.innerHTML += "2a ** 2 = " + pow + "<br>";
pow = [2, 3] ** 2;
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() 方法的替代方案。