ãããæä»çè«çåä»£å ¥æ¼ç®å (^=)
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
ãããæä»çè«çå代å
¥æ¼ç®å (^=) ã¯ã 2 ã¤ã®ãªãã©ã³ãã«å¯¾ãã¦ãããåä½ã®XOR ãå®è¡ãããã®çµæãå·¦å´ã®ãªãã©ã³ãã«ä»£å
¥ãã¾ãã
試ãã¦ã¿ã¾ããã
let a = 5; // 00000000000000000000000000000101
a ^= 3; // 00000000000000000000000000000011
console.log(a); // 00000000000000000000000000000110
// äºæ³ãããçµæ: 6
æ§æ
js
x ^= y
解説
x ^= y 㯠x = x ^ y ã¨åçã§ãããå¼ x ã¯ä¸åº¦ã ãè©ä¾¡ããã¾ãã
ä¾
>ãããæä»çè«çåä»£å ¥ã®ä½¿ç¨
js
let a = 5; // (00000000000000000000000000000101)
a ^= 3; // (00000000000000000000000000000011)
console.log(a); // 6 (00000000000000000000000000000110)
let b = 5; // (00000000000000000000000000000101)
b ^= 0; // (00000000000000000000000000000000)
console.log(b); // 5 (00000000000000000000000000000101)
let c = 5n;
c ^= 3n;
console.log(c); // 6n
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-assignment-operators > |