è¿ç®ç¬¦çä¼å 级å³å®äºè¡¨è¾¾å¼ä¸è¿ç®æ§è¡çå å顺åºãä¼å 级é«çè¿ç®ç¬¦ä¼ä½ä¸ºä¼å 级ä½çè¿ç®ç¬¦çæä½æ°ã
å°è¯ä¸ä¸console.log(3 + 4 * 5); // 3 + 20
// Expected output: 23
console.log(4 * 3 ** 2); // 4 * 9
// Expected output: 36
let a;
let b;
console.log((a = b = 5));
// Expected output: 5
ä¼å
级åç»åæ§
èèç±ä¸é¢çè¡¨ç¤ºæ³æè¿°ç表达å¼ãå ¶ä¸ï¼OP1 å OP2 齿¯æä½ç¬¦çå ä½ç¬¦ã
妿 OP1
å OP2
å
·æä¸åçä¼å
级ï¼è§ä¸è¡¨ï¼ï¼åä¼å
级æé«çè¿ç®ç¬¦å
æ§è¡ï¼ä¸ç¨èèç»åæ§ãè§å¯ä¹æ³å¦ä½å
·ææ¯å æ³æ´é«çä¼å
级并é¦å
æ§è¡ï¼å³ä½¿å æ³æ¯é¦å
åå
¥ä»£ç çã
console.log(3 + 10 * 2); // è¾åº 23
console.log(3 + (10 * 2)); // è¾åº 23 å 为è¿éçæ¬å·æ¯å¤ä½ç
console.log((3 + 10) * 2); // è¾åº 26 å 为æ¬å·æ¹åäºä¼å
级
å·¦ç»åï¼å·¦å°å³ï¼ç¸å½äºæå·¦è¾¹çå表达å¼å ä¸å°æ¬å· (a OP b) OP c
ï¼å³ç»åï¼å³å°å·¦ï¼ç¸å½äº a OP (b OP c)
ãèµå¼è¿ç®ç¬¦æ¯å³ç»åçï¼æä»¥ä½ å¯ä»¥è¿ä¹åï¼
a = b = 5; // ç¸å½äº a = (b = 5);
é¢æç»ææ¯ a
å b
çå¼é½ä¼æä¸º 5ãè¿æ¯å 为èµå¼è¿ç®ç¬¦çè¿åç»æå°±æ¯èµå¼è¿ç®ç¬¦å³è¾¹çé£ä¸ªå¼ï¼å
·ä½è¿ç¨æ¯ï¼é¦å
b
被èµå¼ä¸º 5ï¼ç¶å a
ä¹è¢«èµå¼ä¸º b = 5
çè¿åå¼ï¼ä¹å°±æ¯ 5ã
å¦ä¸ä¸ªä¾åæ¯ï¼åªæå¹è¿ç®ç¬¦æ¯å³ç»åçï¼èå ¶ä»ç®æ¯è¿ç®ç¬¦é½æ¯å·¦ç»åçãæè¶£çæ¯ï¼æ 论ç»åæ§åä¼å 级å¦ä½ï¼æ±å¼é¡ºåºæ»æ¯ä»å·¦å°å³ã
代ç è¾åºfunction echo(name, num) {
console.log("Evaluating the " + name + " side");
return num;
}
// 注æè¿éç餿³è¿ç®ç¬¦ (/)
console.log(echo("left", 6) / echo("right", 2));
Evaluating the left side Evaluating the right side 3
function echo(name, num) {
console.log("Evaluating the " + name + " side");
return num;
}
// 注æè¿éçå¹è¿ç®ç¬¦ (**)
console.log(echo("left", 2) ** echo("right", 3));
Evaluating the left side Evaluating the right side 8
彿å¤ä¸ªå ·æç¸åä¼å 级çè¿ç®ç¬¦æ¶ï¼ç»åæ§çå·®å¼å°±ä¼åæ¥ä½ç¨ãä» ä½¿ç¨ä¸ä¸ªæå¤ä¸ªä¸åä¼å 级çè¿ç®ç¬¦æ¶ï¼ç»åæ§ä¸ä¼å½±åè¾åºï¼å¦ä¸é¢çä¾åæç¤ºãå¨ä¸é¢ç示ä¾ä¸ï¼è§å¯ä½¿ç¨å¤ä¸ªç¸åè¿ç®ç¬¦æ¶ç»åæ§ä¼å¦ä½å½±åè¾åºã
代ç è¾åºfunction echo(name, num) {
console.log("Evaluating the " + name + " side");
return num;
}
// 注æè¿éç餿³è¿ç®ç¬¦ (/)
console.log(echo("left", 6) / echo("middle", 2) / echo("right", 3));
Evaluating the left side Evaluating the middle side Evaluating the right side 1
function echo(name, num) {
console.log("Evaluating the " + name + " side");
return num;
}
// 注æè¿éçå¹è¿ç®ç¬¦ (**)
console.log(echo("left", 2) ** echo("middle", 3) ** echo("right", 2));
Evaluating the left side Evaluating the middle side Evaluating the right side 512
function echo(name, num) {
console.log("Evaluating the " + name + " side");
return num;
}
// 注æè¿é左边åä¸é´çè¢«åæ¬å·å
å´çæ±å¹è¡¨è¾¾å¼
console.log((echo("left", 2) ** echo("middle", 3)) ** echo("right", 2));
Evaluating the left side Evaluating the middle side Evaluating the right side 64
è§å¯ä¸é¢ç代ç çæ®µï¼6 / 3 / 2
ä¸ (6 / 3) / 2
æ¯ç¸åçï¼å ä¸ºé¤æ³æ¯å·¦ç»åçãèå¹è¿ç®ç¬¦æ¯å³ç»åçï¼æä»¥ 2 ** 3 ** 2
ä¸ 2 ** (3 ** 2)
æ¯ç¸åçãå æ¤ï¼(2 ** 3) ** 2
伿´æ¹æ§è¡é¡ºåºï¼å¹¶å¯¼è´è¾åºä¸è¡¨ä¸ç 64ã
请记ä½ï¼å¤ææ§è¡é¡ºåºçæ¶åï¼ä¼å
级å¨ç»åæ§ä¹åãæä»¥ï¼æ··åæ±é¤æ³å广¶ï¼æ±å¹ä¼å
äºé¤æ³ãä¾å¦ï¼2 ** 3 / 3 ** 2
çç»ææ¯ 0.8888888888888888ï¼å 为å®ç¸å½äº (2 ** 3) / (3 ** 2)
ã
å¨ä¸è¡¨ä¸ï¼åç»ï¼Groupingï¼ å
·ææé«ä¼å
级ãç¶èï¼è¿å¹¶ä¸æå³çæ»æ¯ä¼å
对åç»ç¬¦å· ( ⦠)
å
ç表达å¼è¿è¡æ±å¼ï¼å°¤å
¶æ¯æ¶åçè·¯æ¶ã
çè·¯æ¯æ¡ä»¶æ±å¼çæ¯è¯ãä¾å¦ï¼å¨è¡¨è¾¾å¼ a && (b + c)
ä¸ï¼å¦æ a
为èå¼ï¼falsyï¼ï¼é£ä¹å³ä½¿ (b + c)
å¨åæ¬å·ä¸ï¼ä¹ä¸ä¼è¢«æ±å¼ãæä»¬å¯ä»¥è¯´é»è¾æè¿ç®ç¬¦ï¼âORâï¼æ¯âçè·¯çâãé¤äºé»è¾æè¿ç®ç¬¦å¤ï¼å
¶ä»çè·¯è¿ç®ç¬¦è¿å
æ¬é»è¾ä¸ï¼âANDâï¼ã空å¼åå¹¶ãå¯éé¾åæ¡ä»¶ï¼ä¸å
ï¼è¿ç®ç¬¦ãä¸é¢ææ´å¤ä¾åï¼
a || b * c; // é¦å
对 `a` æ±å¼ï¼å¦æ `a` 为çå¼åç´æ¥è¿å `a`
a && b < c; // é¦å
对 `a` æ±å¼ï¼å¦æ `a` 为èå¼åç´æ¥è¿å `a`
a ?? (b || c); // é¦å
对 `a` æ±å¼ï¼å¦æ `a` 䏿¯ `null` æ `undefined` åç´æ¥è¿å `a`
a?.b.c; // é¦å
对 `a` æ±å¼ï¼å¦æ `a` æ¯ `null` æ `undefined` åç´æ¥è¿å `undefined`
示ä¾
3 > 2 && 2 > 1;
// è¿å true
3 > 2 > 1;
// è¿å falseï¼å 为 3 > 2 æ¯ trueï¼ç¶å true ä¼å¨æ¯è¾è¿ç®ç¬¦ä¸
// 被éå¼è½¬æ¢ä¸º 1ï¼å æ¤ true > 1 ä¼å为 1 > 1ï¼ç»ææ¯ false
// å æ¬å·å¯ä»¥æ´æ¸
æ¥ï¼(3 > 2) > 1
æ±æ»è¡¨
ä¸é¢çè¡¨æ ¼å°ææè¿ç®ç¬¦æç §ä¼å 级çä¸åä»é«ï¼19ï¼å°ä½ï¼1ï¼æåã
请注æï¼ä¸è¡¨ä¸æ æä¸å å«å±å¼è¯æ³ââåå å¯ä»¥å¼ç¨ Stack Overflow ä¸çä¸ä¸ªåçï¼âå±å¼è¯æ³ä¸æ¯ä¸ä¸ªè¿ç®ç¬¦ï¼å æ¤æ²¡æä¼å 级ã宿¯æ°ç»åé¢éå彿°è°ç¨ï¼å对象åé¢éï¼è¯æ³çä¸é¨åãâ
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4