JavaScript中(两个星号)是ES2016引入的幂运算符,用于简洁计算次方,如23得8;它右结合、优先级高于四则运算,支持负数底数(部分引擎有限制),兼容性要求Node.js v8.3.0+或现代浏览器。

JavaScript 中用 **(两个星号)作为幂运算符,直接计算次方,比如 2 ** 3 就是 2 的 3 次方,结果为 8。
基本用法:用 ** 写出简洁的次方表达式
替代传统的 Math.pow(),更直观易读:
-
5 ** 2→ 25(5 的平方) -
4 ** 0.5→ 2(4 的平方根,等价于Math.sqrt(4)) -
2 ** 10→ 1024(2 的 10 次方) -
16 ** (1/4)→ 2(16 的四次方根)
注意运算优先级和结合性
** 的优先级高于加减乘除,且是右结合(从右往左算):
-
2 ** 3 ** 2等价于2 ** (3 ** 2)→2 ** 9→ 512 - 如果想先算左边,必须加括号:
(2 ** 3) ** 2→8 ** 2→ 64 -
3 + 2 ** 2→3 + 4→ 7(不是5 ** 2)
和 Math.pow() 的主要区别
两者功能一致,但行为细节略有不同:
立即学习“Java免费学习笔记(深入)”;
-
**支持负数底数的分数指数(只要结果是实数),如(-8) ** (1/3)在部分引擎中可能返回NaN(因浮点精度或规范限制),而Math.pow(-8, 1/3)一定返回NaN -
**对NaN、Infinity、0等边界值的处理与Math.pow基本一致,但更严格遵循 ECMAScript 规范 - 语法上
**更轻量,适合链式或嵌入式表达式
兼容性提醒
** 是 ES2016(ES7)引入的特性,现代浏览器和 Node.js(v8.3.0+)都支持。若需兼容旧环境(如 IE 或老版本 Node),应使用 Math.pow(base, exponent) 或 Babel 转译。


















