iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0

例外創造了美的價值

Oscar Niemeyer

Ternary Operator

昨天提到我們要盡量避免使用到else,或許不少人心中馬上就會有疑問是:那ternary operator也包含了else的功能,是否便該拒之門外。

恰恰相反的是,大部分的ternary operator是可以被接受的。我們以ternary operator來重構昨天的例子:

// 不會被討厭的寫法
function squareOdd(n) {
    return n % 2 === 0 ? n : n ** 2;
}

他的優點顯而易見的:非imperative、易懂易讀、簡潔。這麼好的東西為何不接受他。

值得注意的是,ternary的優勢只有在這種形式下才能被彰顯。有些人會發揮自以為是創意感,把ternary玩出花來:例如俄羅斯套娃版的ternaries,這時不僅代碼複雜性增高,else的缺點也會在此暴露,是讓主管討厭同事抱怨的直達車。

Switch Statement

談到switch陳述句,大多數人不是「知道但就不想用」,不然就是避之惟恐不及。但實務上,還是有其用處的。

他最直覺的用處之一,就是大家一開始接觸他的那個用法:連續的if-else-if-else-if...。此時,用簡潔、易讀、且更有執行效率的switch不香嗎?事實上,React中的Redux便是switch愛好者之一,幾乎都被用在其reducer中。

不用switch的另外一個方法,便是將case-return 對用object的方式(key-value對)來表徵,這也不失為一個好作法。


上一篇
分手:Else
下一篇
延宕滿足:Partial Applications (1/2)
系列文
被討厭的前端實務手冊|JS x TS x React18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言