éå·è¿ç®ç¬¦ï¼,ï¼
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
éå·ï¼,ï¼è¿ç®ç¬¦å¯¹å®çæ¯ä¸ªæä½æ°ä»å·¦å°å³æ±å¼ï¼å¹¶è¿åæåä¸ä¸ªæä½æ°çå¼ãè¿è®©ä½ å¯ä»¥å建ä¸ä¸ªå¤å表达å¼ï¼å
¶ä¸å¤ä¸ªè¡¨è¾¾å¼è¢«è¯ä¼°ï¼å¤å表达å¼çæç»å¼æ¯å
¶æå表达å¼ä¸æå³è¾¹çå¼ãè¿é常ç¨äºä¸º for å¾ªç¯æä¾å¤ä¸ªåæ°ã
å°è¯ä¸ä¸
let x = 1;
x = (x++, x);
console.log(x);
// Expected output: 2
x = (2, 3);
console.log(x);
// Expected output: 3
è¯æ³
expr1, expr2, expr3/* , ⦠*/
åæ°
expr1ãexpr2ãexpr3â¦â¦-
ä¸ä¸ªæå¤ä¸ªè¡¨è¾¾å¼ï¼æåä¸ä¸ªè¡¨è¾¾å¼çè¿åå¼ä¼ä½ä¸ºå½åå¤å表达å¼çå¼ã
æè¿°
å½ä½ æ³è¦å¨ææä¸ä¸ªè¡¨è¾¾å¼çä½ç½®å
å«å¤ä¸ªè¡¨è¾¾å¼æ¶ï¼å¯ä»¥ä½¿ç¨éå·è¿ç®ç¬¦ãè¿ä¸ªè¿ç®ç¬¦æå¸¸ç¨çä¸ç§æ
嵿¯ï¼å¨ for 循ç¯ä¸æä¾å¤ä¸ªåæ°ã
éå·è¿ç®ç¬¦ä¸æ°ç»ã对象å彿°åæ°ä¸çéå·å«ä¹å®å ¨ä¸åã
示ä¾
å设 a æ¯ä¸ä¸ªäºç»´æ°ç»ï¼æ¯ä¸ç»´åº¦å
å« 10 个å
ç´ ï¼ä»¥ä¸ä»£ç éè¿ä½¿ç¨éå·è¿ç®ç¬¦ï¼å¯ä»¥åæ¶éå¢ i åéå jã
ä¸é¢çä»£ç æå°ä¸ä¸ªäºç»´æ°ç»ä¸æçº¿æ¹åçå ç´ ï¼
for (let i = 0, j = 9; i <= 9; i++, j--) {
console.log(`a[${i}][${j}] = ${a[i][j]}`);
}
请注æï¼èµå¼ä¸çéå·è¿ç®ç¬¦å¯è½çèµ·æ¥æ²¡æéå·è¿ç®ç¬¦çæ£å¸¸ææï¼å 为å®ä»¬å¹¶ä¸åå¨äºè¡¨è¾¾å¼ä¸ãå¨ä»¥ä¸ç¤ºä¾ä¸ï¼a 被设置为 b=3 çå¼ï¼å®æ¯ 3ï¼ï¼ä½æ¯è¡¨è¾¾å¼ c=4 ä»ç¶ä¼ç»è¿è¯ä¼°ï¼ä¸å®çå¼ï¼ä¹å°±æ¯ 4ï¼ä¼è¿åè³æ§å¶å°ãè¿æ¯ç±äºè¿ç®ç¬¦çä¼å
级åç»åæ§ã
let a, b, c;
a = b = 3, c = 4; // å¼ 4 è¿åå°æ§å¶å°
console.log(a); // 3 (left-most)
let x, y, z;
x = (y = 5, z = 6); // å¼ 6 è¿åå°æ§å¶å°
console.log(x); // 6 (right-most)
å¤çåè¿å
å¦ä¸ä¸ªä½¿ç¨éå·è¿ç®ç¬¦çä¾åæ¯å¨è¿åå¼åå¤çä¸äºæä½ãå¦åæè¿°ï¼éå·è¿ç®ç¬¦åªä¼è¿åæåä¸ä¸ªå ç´ ï¼ä½å ¶ä»è¡¨è¾¾å¼é½ä¼è¢«æ±å¼ãæä»¥ï¼å¯ä»¥è¿ä¹åï¼
function myFunc() {
let x = 0;
return (x += 1, x); // ä¸ return ++x; çä»·
}
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-comma-operator> |