双星号**是一个有效的Javascript运算符吗?

Iva*_*lez 28 javascript math operators

我在代码战中解决了一个kata,当我遇到双星号来表示它的强大功能时,我正在查看其他一些解决方案.我做了一些研究,可以看到这是python中的一个有效的运算符,但在JavaScript文档中却看不到它.

var findNb = m =>
{
  var n = Math.floor((4*m)**.25);
  var sum = x => (x*(x+1)/2)**2;
  return sum(n) == m ? n : -1;
}
Run Code Online (Sandbox Code Playgroud)

然而,当我在代码大战上运行此解决方案时,它似乎有效.我想知道这是否是ES6中的新功能,虽然我没有发现它.

Tom*_*dym 40

是.**指数运算符,相当于Math.pow.

它是在ECMAScript 2016(ES7)中引入的.

有关详细信息,请参阅建议,这探索ES2016.


Mag*_*gus 18

**在ECMAScript 2016(ES7)中引入.但请记住,并非所有javascripts环境都实现它(例如,Internet Explorer不支持它).

如果您想要跨浏览器,则必须使用Math.pow.

Math.pow(4, 5)
Run Code Online (Sandbox Code Playgroud)


Har*_*Das 7

**运算符是 ES7 中的有效运算符。它的含义与Math.pow(x,y) 例如2**3相同,与Math.pow(2,3)

以下是维基百科的详细信息。

ES7 中添加了两个新特性:

求幂运算符 (**) 和 Array.prototype.includes

https://en.wikipedia.org/wiki/ECMAScript#cite_ref-ES2016_12-1

你可以在Babel Live 编译器中使用它