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

时间:2015-10-22 15:17:00

标签: 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;
}

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

3 个答案:

答案 0 :(得分:30)

是。 **取幂运算符,相当于Math.pow

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

有关详细信息,请参阅 Exploring ES2016 proposal和此chapter

答案 1 :(得分:13)

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

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

Math.pow(4, 5)

答案 2 :(得分:2)

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

相同

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

ES7中添加了两项新功能:

  

exponentiation运算符(**)和Array.prototype.includes

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

您可以在此Babel Live compiler

中使用此功能