Exponentiation assignment (=)
En esta página
The exponentiation assignment (**=) operator performs exponentiation on the two operands and assigns the result to the left operand.
{{InteractiveExample("JavaScript Demo: Exponentiation assignment (**=) operator")}}
```js interactive-example let a = 3;
console.log((a **= 2)); // Expected output: 9
console.log((a **= 0)); // Expected output: 1
console.log((a **= 'hello')); // Expected output: NaN
## Syntax
```js-nolint
x **= y
Description#
x **= y is equivalent to x = x ** y, except that the expression x is only evaluated once.
Examples#
Exponentiation assignment using numbers#
let bar = 5;
bar **= 2; // 25
Other non-BigInt values are coerced to numbers:
let baz = 5;
baz **= "foo"; // NaN
Exponentiation assignment using BigInts#
let foo = 3n;
foo **= 2n; // 9n
foo **= 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions
Specifications#
{{Specifications}}
Browser compatibility#
{{Compat}}