假設有一個狀況是這樣的:
小明下課回家的路上,突然感到肚子餓,打算到巷口那間賣關東煮的買份黑輪墊墊胃,但那間店的老闆很任性,常常一言不合就放自己假不營業。
於是小明心裡盤算著:「如果有開,那就買一份,如果沒開,那就只好忍一下回家等吃晚餐。」
一般來說,我們最常運用 if
來進行這種狀況的判斷:
if(賣關東煮的店有開){
// 買一份關東煮
}else{
// 忍一下,回家等吃晚餐
}
1
2
3
4
5
2
3
4
5
但其實在這種狀況下,我們也可以用這樣的方式來做判斷:
(賣關東煮的店有開) ? (買一份關東煮) : (忍一下,回家等吃晚餐)
1
以上的這種方法就叫做「三元表達式」,這種方法可以將原本五行的程式碼縮減成一行,讓整段程式碼變得簡潔精闢了許多。
# 三元表達式的用法
當在專案中經常使用到 if
、 else
判斷,而且巢狀結構又比較多的時候,此時用三元表達式可以讓程式碼看起來更加清爽,結構清晰,三元表達式的語法解析如下:
(判斷內容) ? (當判斷內容為 True 時的答案) : (當判斷內容為 False 時的答案)
# 三元表達式 + function
三元表達式也可以用來根據不同的狀況,判斷並呼叫自己想要的 function 來執行,如以下範例:
let doTheAPlan = true;
function active1( ){
// 執行A計畫
}
function active2( ){
// 執行B計畫
}
// 當doTheAPlan為真的時候,執行A計畫,如果不是則執行B計畫
doTheAPlan ? active1( ):active2( );
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 三元表達式 + 多個執行內容
在三元表達式中,並不限定只能執行一段程式,只要用括號包起來,再用逗號隔開就可以執行多段程式碼,範例如下:
target ?
(
active1 ( ),
active2 ( ),
active3 ( )
):(
active4 ( ),
active5 ( )
);
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
以上就是有關如何運用三元表達式來優化程式碼,以及相關的運用方式介紹囉!
v1.4.14