我在代码战中解决了一个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的新功能,虽然我没有发现它。
答案 0 :(得分:30)
是。 **
是取幂运算符,相当于Math.pow
。
它是在ECMAScript 2016(ES7)中引入的。
答案 1 :(得分:13)
**
在ECMAScript 2016(ES7)中引入。但请记住,并非所有javascripts环境都实现它(例如,Internet Explorer不支持它)。
如果您想要跨浏览器,则必须使用Math.pow
。
Math.pow(4, 5)
答案 2 :(得分:2)
**
运算符是ES7中的有效运算符。它与Math.pow(x,y)
具有相同的含义
例如,2**3
与Math.pow(2,3)
以下是维基百科的详细信息。
ES7中添加了两项新功能:
exponentiation运算符(**)和Array.prototype.includes
https://en.wikipedia.org/wiki/ECMAScript#cite_ref-ES2016_12-1
您可以在此Babel Live compiler
中使用此功能