ES11 中的 Exponentiation 运算符及用法
在 ECMAScript 2016 中,JS 引入了 Exponentiation 运算符,该运算符基于指数操作符 **。在之前的版本中,我们可以通过 Math.pow 函数来实现指数算法。但是,该函数有一些限制,因为它只能接受两个参数。而 Exponentiation 运算符则没有该限制,它可以接受任意数量的参数。
Exponentiation 运算符是一个新的二元运算符,它用于计算指数幂。以前,必须编写一个函数或使用内置的 Math.pow() 函数来计算指数幂。现在,我们可以使用 Exponentiation 运算符(**)来更方便地进行此操作。
Exponentiation 运算符使用如下:
a ** b
其中,a 和 b 是任意数字变量。
示例代码:
let a = 2; let b = 3; console.log(a ** b); //输出 8
当 a = 2,b = 3 时,a ** b 将进行以下计算:
a ** b == 2 * 2 * 2
这将返回 8。
如果输入的值为非数字,则会抛出一个错误。例如:
console.log(5 ** "a"); // 输出 NaN console.log("5" ** 2); // 输出 25
Exponentiation 运算符的优先级比乘法运算符高,但比带括号的赋值运算符低。这意味着在没有括号的情况下,** 运算符将在 * 运算符之前执行。
let result = 2 * 3 ** 2; console.log(result); // 输出 18 let result2 = (2 * 3) ** 2; console.log(result2); // 输出 36
除了单个数字,Exponentiation 运算符可以用于计算变量、常量和表达式。例如:
let x = 2; const y = 3; console.log(x ** y); // 输出 8 let z = Math.sqrt(x ** 2 + y ** 2); console.log(z); //输出 3.605551275463989
Exponentiation 运算符还有一个新的赋值运算符 **=:
let a = 2; a **= 3; console.log(a); //输出 8
它等价于 a = a ** 3。
总结
Exponentiation 运算符是一个新的二元运算符,可以计算任意数量的指数幂。它提供了一种比 Math.pow 更简便的方法来执行指数算法。除了单个数字,它还可以用于计算变量、常量和表达式。它还有一个新的赋值运算符 **=。
在使用 Exponentiation 运算符时,请记住将其与其他运算符的优先级进行比较,以保证代码按预期工作。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652f449e7d4982a6eb0599e7