So, it's perfectly valid to write:
const x = 2 ** 3 // x is 8, meaning 2 raised to a power of 3 const y = x ** 2 // x is 64, squared x
The double asterisk
** operator was introduced in ECMAScript 2016 and it's also named the exponentiation operator.
x ** y it's the same as writing
It works also with negative or fractional values:
const z = 7 ** -2 // z is 0.02040816326530612, 1 / 49 const t = 4 ** 0.5 // t is 2
And we also have the exponentiation assignment:
x **= y // meaning x = x ** y
The support for the double asterisk is great, works everywhere except IE.