ã¹ãä¹ä»£å ¥æ¼ç®å (**=)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2017å¹´3æ.
ã¹ãä¹ä»£å
¥æ¼ç®å (**=) ã¯ãã¹ãä¹ã 2 ã¤ã®ãªãã©ã³ãã§å®è¡ããçµæãå·¦ãªãã©ã³ãã«ä»£å
¥ãã¾ãã
試ãã¦ã¿ã¾ããã
let a = 3;
console.log((a **= 2));
// äºæ³ãããçµæ: 9
console.log((a **= 0));
// äºæ³ãããçµæ: 1
console.log((a **= "hello"));
// äºæ³ãããçµæ: NaN
æ§æ
js
x **= y
解説
x **= y 㯠x = x ** y ã¨åçã§ãããå¼ x ãä¸åº¦ã ãè©ä¾¡ãããç¹ãç°ãªãã¾ãã
ä¾
>ã¹ãä¹ä»£å ¥ã®ä»æ§
js
let bar = 5;
bar **= 2; // 25
ãã®ä»ã®é·æ´æ°ã§ãªãå¤ã¯ãæ°å¤ã«å¤æããã¾ãã
js
let baz = 5;
baz **= "foo"; // NaN
é·æ´æ°ã使ç¨ããã¹ãä¹ä»£å ¥
js
let foo = 3n;
foo **= 2n; // 9n
foo **= 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-assignment-operators> |