æ¡ä»¶ï¼ä¸å ï¼è¿ç®ç¬¦
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
æ¡ä»¶ï¼ä¸å
ï¼è¿ç®ç¬¦æ¯ JavaScript å¯ä¸ä½¿ç¨ä¸ä¸ªæä½æ°çè¿ç®ç¬¦ï¼ä¸ä¸ªæ¡ä»¶åè·ä¸ä¸ªé®å·ï¼?ï¼ï¼å¦ææ¡ä»¶ä¸ºçå¼ï¼åæ§è¡åå·ï¼:ï¼åç表达å¼ï¼è¥æ¡ä»¶ä¸ºåå¼ï¼åæ§è¡æåç表达å¼ã该è¿ç®ç¬¦ç»å¸¸å½ä½ if...else è¯å¥çç®æ·å½¢å¼æ¥ä½¿ç¨ã
å°è¯ä¸ä¸
function getFee(isMember) {
return isMember ? "$2.00" : "$10.00";
}
console.log(getFee(true));
// Expected output: "$2.00"
console.log(getFee(false));
// Expected output: "$10.00"
console.log(getFee(null));
// Expected output: "$10.00"
è¯æ³
condition ? exprIfTrue : exprIfFalse
åæ°
condition-
计ç®ç»æç¨ä½æ¡ä»¶ç表达å¼ã
exprIfTrue-
妿
conditionç计ç®ç»æä¸ºçå¼ï¼çäºæå¯ä»¥è½¬æ¢ä¸ºtrueçå¼ï¼ï¼åæ§è¡è¯¥è¡¨è¾¾å¼ã exprIfFalse-
妿
condition为åå¼ï¼çäºæå¯ä»¥è½¬æ¢ä¸ºfalseçå¼ï¼æ¶æ§è¡ç表达å¼ã
æè¿°
é¤äº falseï¼å¯è½çåå¼è¡¨è¾¾å¼è¿æï¼nullãNaNã0ã空å符串ï¼""ï¼å undefinedã妿 condition æ¯å
¶ä¸ä»»ä½ä¸ä¸ªï¼é£ä¹æ¡ä»¶è¡¨è¾¾å¼çç»æå°±æ¯ exprIfFalse è¡¨è¾¾å¼æ§è¡çç»æã
示ä¾
>ç®åçä¾å
const age = 26;
const beverage = age >= 21 ? "Beer" : "Juice";
console.log(beverage); // "Beer"
å¤ç null å¼
ä¸ä¸ªå¸¸è§çç¨æ³æ¯å¤çå¯è½ä¸º null çå¼ï¼
const greeting = (person) => {
const name = person ? person.name : "stranger";
return `Howdy, ${name}`;
};
console.log(greeting({ name: "Alice" })); // "Howdy, Alice"
console.log(greeting(null)); // "Howdy, stranger"
æ¡ä»¶é¾
ä¸å
è¿ç®ç¬¦æ¯å³ç»åçï¼è¿æå³çå®å¯ä»¥æä»¥ä¸æ¹å¼â龿¥âèµ·æ¥ï¼ç±»ä¼¼äº if ⦠else if ⦠else if ⦠else é¾ï¼
function example() {
return condition1
? value1
: condition2
? value2
: condition3
? value3
: value4;
}
è¿çä»·äºä»¥ä¸ if...else é¾ã
function example() {
if (condition1) {
return value1;
} else if (condition2) {
return value2;
} else if (condition3) {
return value3;
} else {
return value4;
}
}
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-conditional-operator> |