你真的會(huì)用三元運(yùn)算符嗎?
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
什么是三元運(yùn)算符?三元運(yùn)算符在Javascript中的的表現(xiàn)形式是?,它的作用是“計(jì)算在它之前傳遞的條件表達(dá)式,并根據(jù)條件表達(dá)式的結(jié)果判斷應(yīng)該執(zhí)行問號(hào)(?)后的哪一段代碼”。(?)后接兩端不同情況下該執(zhí)行的代碼,代碼之前用冒號(hào)分隔,:。 它的語法如下所示: 條件表達(dá)式 ? 結(jié)果為true執(zhí)行的代碼 : 結(jié)果為false執(zhí)行的代碼; 當(dāng)我們的條件表達(dá)式運(yùn)行結(jié)果為true時(shí),執(zhí)行( 如何使用三元運(yùn)算符?當(dāng)我們需要根據(jù)某一個(gè)表達(dá)式的運(yùn)算結(jié)果來決定我們的接下來要執(zhí)行的代碼時(shí),我們就可以使用三元運(yùn)算符。 //const student = false; //第一種情況為student==false,執(zhí)行Welcome, Guest! const student = 'zayyo'; //第二種情況為true,執(zhí)行Welcome, zayyo! const welcomeStudent = student ? `Welcome, ${student}!` : "Welcome, Guest!"; console.log(welcomeStudent); // Welcome, zayyo! 在上面的代碼中,我們把studnent當(dāng)做布爾條件去求值,當(dāng)student為true時(shí),我們把( 在Javascript中 那什么時(shí)候使用三元運(yùn)算符呢?我們常見的三元運(yùn)算符例子的都只有兩種結(jié)果,要么為true,要么為false。與之類似的代碼結(jié)構(gòu)就只有我們的if/else選擇結(jié)構(gòu),我們可以用三元運(yùn)算符來代替if/else的使用,用來增加代碼的可讀性和簡(jiǎn)潔性 例子: // 使用if/else { const welcomeStudent = student => { if (student) { return `Welcome, ${student.name}!`; } else { return "Welcome, Guest!"; }; }; console.log(welcomeStudent({ name: 'zayyo' })); // Welcome, zayyo! console.log(welcomeStudent()); // Welcome, Guest! } // 使用三元運(yùn)算符 { const welcomeStudent = student => student ? `Welcome, ${student.name}!` : "Welcome, Guest!"; console.log(welcomeStudent({ name: 'zayyo' })); // Welcome, zayyo! console.log(welcomeStudent()); // Welcome, Guest! } 在上面的例子中,我們不難看出三元運(yùn)算符有著更好的可讀性和簡(jiǎn)潔性 鏈?zhǔn)饺\(yùn)算符那如果我們遇見更加復(fù)雜的代碼,如if/else if/else或者是switch的結(jié)果我們?nèi)绾稳ナ褂萌\(yùn)算符去優(yōu)化代碼呢?
// 使用 if/else if/else const grade = mark => { if (mark > 100) { return; } else if (mark > 80) { return '優(yōu)秀'; } else if (mark > 70) { return '良好'; } else if (mark > 60) { return '及格'; } else if (mark > 50) { return '不及格'; } else { return '差'; }; }; console.log(grade(100)); // 優(yōu)秀 console.log(grade(1000)); // undefined console.log(grade(10)); // 差 // 使用鏈?zhǔn)饺\(yùn)算符 const grade = mark => mark > 100 ? undefined : mark > 80 ? '優(yōu)秀' : mark > 70 ? '良好' : mark > 60 ? '及格' : mark > 50 ? '不及格' : '差'; console.log(grade(100)); // 優(yōu)秀 console.log(grade(1000)); // undefined console.log(grade(10)); // 差 在鏈?zhǔn)秸{(diào)用三元運(yùn)算符中,我們把條件運(yùn)算符鏈接到每個(gè)級(jí)別的三元運(yùn)算符中的第三個(gè)操作數(shù)里,但是對(duì)于初級(jí)程序員來說,這樣的做法不僅不能提高代碼的可讀性反而會(huì)適得其反。所以當(dāng)我們遇見更加復(fù)雜的選擇代碼時(shí)我們還是建議使用更加繁瑣的if/else if/else來保存代碼的可讀性。 結(jié)論在比較簡(jiǎn)單的選擇結(jié)構(gòu)時(shí)運(yùn)用我們的三元運(yùn)算符確實(shí)可以提升我們的代碼的可讀性以及簡(jiǎn)潔性,編寫代碼時(shí)也更快,但是如果是復(fù)雜的選擇結(jié)構(gòu)時(shí)運(yùn)用鏈?zhǔn)饺\(yùn)算符,不僅不會(huì)提高代碼的可讀性,反而會(huì)適得其反。所以合理的選擇使用三元運(yùn)算符很重要 該文章在 2023/6/17 10:53:36 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |