Exponentiation assignment (**=)
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.
Toán tử **exponentiation assignment (**=)** thực hiện phép lũy thừa trên hai toán hạng và gán kết quả cho toán hạng bên trái.
Try it
let a = 3;
console.log((a **= 2));
// Expected output: 9
console.log((a **= 0));
// Expected output: 1
console.log((a **= "hello"));
// Expected output: NaN
Cú pháp
js
x **= y
Mô tả
x **= y tương đương với x = x ** y, ngoại trừ biểu thức x chỉ được tính một lần.
Ví dụ
>Exponentiation assignment với số
js
let bar = 5;
bar **= 2; // 25
Các giá trị không phải BigInt sẽ được ép kiểu thành số:
js
let baz = 5;
baz **= "foo"; // NaN
Exponentiation assignment với BigInt
js
let foo = 3n;
foo **= 2n; // 9n
foo **= 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions
Thông số kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-assignment-operators> |