javascript中(双星号)是幂运算符,语法为ab表示a的b次方,等价于math.pow但更简洁且支持bigint;优先级高于四则运算且右结合;负底数的分数指数返回nan。

JavaScript 中用 **(双星号)作为幂运算符,直接计算一个数的几次方,语法简洁直观。
基本用法:a ** b 表示 a 的 b 次方
它等价于 Math.pow(a, b),但更易读、支持更多类型(如 BigInt)。
-
2 ** 3→ 8(2 × 2 × 2) -
5 ** 0→ 1(任何非零数的 0 次方都是 1) -
9 ** 0.5→ 3(即 √9,支持分数指数) -
4 ** 0.5→ 2(开平方)
注意运算优先级和结合性
幂运算符 ** 的优先级高于加减乘除,且是右结合(从右往左计算):
-
2 ** 3 ** 2等价于2 ** (3 ** 2)→2 ** 9→ 512 - 若想先算左边,需加括号:
(2 ** 3) ** 2→8 ** 2→ 64 -
-2 ** 2会报错(SyntaxError),因为 ** 优先级高于一元负号;应写成(-2) ** 2→ 4
与 Math.pow 的主要区别
-
**支持BigInt:2n ** 3n→ 8n;Math.pow(2n, 3)会报错 -
**对负底数 + 分数指数更严格:(-4) ** 0.5返回 NaN(不支持实数范围内负数开偶次方) -
Math.pow(-4, 0.5)同样返回 NaN,行为一致 - 两者都接受
Infinity、NaN等特殊值,结果也基本一致
实用小技巧
- 快速判断是否为 2 的整数次幂:
(n & (n - 1)) === 0 && n > 0(位运算更高效,** 不适合此场景) - 需要循环累乘时仍用
for或reduce,** 只适用于已知指数的静态计算 - 处理用户输入时记得校验:
isNaN(base) || isNaN(exponent),避免意外NaN结果
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











