三元表達式?優雅的程式碼!

12/16/2019, JavaScript前端

images

假設有一個狀況是這樣的:

小明下課回家的路上,突然感到肚子餓,打算到巷口那間賣關東煮的買份黑輪墊墊胃,但那間店的老闆很任性,常常一言不合就放自己假不營業。

於是小明心裡盤算著:「如果有開,那就買一份,如果沒開,那就只好忍一下回家等吃晚餐。」

一般來說,我們最常運用 if 來進行這種狀況的判斷:

  if(賣關東煮的店有開){
    // 買一份關東煮
  }else{
    // 忍一下,回家等吃晚餐
  }
1
2
3
4
5

但其實在這種狀況下,我們也可以用這樣的方式來做判斷:

(賣關東煮的店有開) ? (買一份關東煮) : (忍一下,回家等吃晚餐)
1

以上的這種方法就叫做「三元表達式」,這種方法可以將原本五行的程式碼縮減成一行,讓整段程式碼變得簡潔精闢了許多。


# 三元表達式的用法

當在專案中經常使用到 ifelse 判斷,而且巢狀結構又比較多的時候,此時用三元表達式可以讓程式碼看起來更加清爽,結構清晰,三元表達式的語法解析如下:

(判斷內容) ? (當判斷內容為 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

# 三元表達式 + 多個執行內容

在三元表達式中,並不限定只能執行一段程式,只要用括號包起來,再用逗號隔開就可以執行多段程式碼,範例如下:

  target ? 
    (
      active1 ( ),
      active2 ( ),
      active3 ( )
    ):(
      active4 ( ),
      active5 ( )
    );
1
2
3
4
5
6
7
8
9

以上就是有關如何運用三元表達式來優化程式碼,以及相關的運用方式介紹囉!

Last Updated: 3/3/2021, 8:10:09 PM