幂赋值(**=)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

幂赋值**=)对两个操作数执行幂运算,并将结果赋给左操作数。

尝试一下

语法

js
x **= y

描述

x **= yx = x ** y 是等价的,不同之处在于前者的 x 只被计算一次。

示例

使用数字进行幂赋值

js
let bar = 5;
bar **= 2; // 25

其他非 BigInt 值会被强制转换为数字:

js
let baz = 5;
baz **= "foo"; // NaN

使用 BigInt 进行幂赋值

js
let foo = 3n;
foo **= 2n; // 9n
foo **= 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions

规范

Specification
ECMAScript Language Specification
# sec-assignment-operators

浏览器兼容性

BCD tables only load in the browser

参见