è«çç©ä»£å ¥æ¼ç®å (&&=)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020å¹´9æ.
è«çç©ä»£å
¥æ¼ç®å (&&=) ã¯ãå·¦ãªãã©ã³ããçå¤ã®å ´åã«ã®ã¿å³ãªãã©ã³ããè©ä¾¡ããå·¦ãªãã©ã³ãã«ä»£å
¥ãã¾ãã
試ãã¦ã¿ã¾ããã
let a = 1;
let b = 0;
a &&= 2;
console.log(a);
// äºæ³ãããçµæ: 2
b &&= 2;
console.log(b);
// äºæ³ãããçµæ: 0
æ§æ
x &&= y
解説
è«çç©ä»£å
¥æ¼ç®åã¯ç絡è©ä¾¡ãè¡ããããx &&= y 㯠x && (x = y) ã¨åçã§ãããã ããå¼ x ã¯ä¸åº¦ã ãè©ä¾¡ããã¾ãã
左辺ãçå¤ã§ãªãå ´åãè«çç©æ¼ç®åã®ç絡ãçºçãããã代å
¥ã¯å®è¡ããã¾ãããä¾ãã°ã x ã const ã§ãã£ã¦ãã以ä¸ã®ã³ã¼ãã¯ã¨ã©ã¼ãçºçãã¾ããã
const x = 0;
x &&= 2;
次ã®ã³ã¼ããã»ãã¿ã¼ãèµ·åãã¾ããã
const x = {
get value() {
return 0;
},
set value(v) {
console.log("ã»ãã¿ã¼ãå¼ã³åºããã¾ãã");
},
};
x.value &&= 2;
å®éã x ãçå¤ã§ããå ´åã y ã¯ã¾ã£ããè©ä¾¡ããã¾ããã
const x = 0;
x &&= console.log("y ãè©ä¾¡ããã¾ãã");
// ä½ããã°åºåãããªã
ä¾
>è«çç©ä»£å ¥æ¼ç®åã®ä½¿ç¨
let x = 0;
let y = 1;
x &&= 0; // 0
x &&= 1; // 0
y &&= 1; // 1
y &&= 0; // 0
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-assignment-operators> |