JavaScript 指数运算符 ** 可直接替代 Math.pow(),语法更简洁、可读性更高,且行为一致;支持负数与小数指数,优先级高于四则运算但低于一元运算符,右结合;ES2016 起支持,现代环境推荐使用。

JavaScript 中的指数运算符 ** 可以直接替代 Math.pow(),语法更简洁、可读性更高,且在大多数场景下行为一致。
基本用法:直接替换 Math.pow
** 是中缀运算符,左边是底数,右边是指数,和数学写法一致:
-
2 ** 3等价于Math.pow(2, 3)→ 结果都是8 -
5 ** 0等价于Math.pow(5, 0)→ 结果都是1 -
4 ** 0.5等价于Math.pow(4, 0.5)→ 结果都是2
支持负数与小数指数
和 Math.pow() 一样,** 支持负指数(倒数)和分数指数(开方):
-
2 ** -2→1 / (2 ** 2)=0.25 -
27 ** (1/3)→ 立方根 ≈3(浮点精度下) -
16 ** 0.25→ 四次方根 =2
注意运算符优先级和结合性
** 的优先级高于加减乘除,但低于一元运算符(如 +、-、!),且右结合:
立即学习“Java免费学习笔记(深入)”;
-
-2 ** 2解析为-(2 ** 2)=-4(不是(-2) ** 2) - 需要底数为负时,必须加括号:
(-2) ** 2=4 - 连续幂运算从右向左:
2 ** 3 ** 2=2 ** (3 ** 2)=2 ** 9=512
兼容性与使用建议
** 自 ES2016(ES7)起被正式支持,现代浏览器和 Node.js(≥ v12)均可用。若需兼容旧环境(如 IE),仍需回退到 Math.pow() 或使用 Babel 转译。
日常开发中,只要目标环境支持,推荐优先使用 **:更直观、少括号、少嵌套,尤其适合公式类表达式(如 radius ** 2 * Math.PI)。


















