# if 與 switch 的使用時機? ## JavaScript Switch 語句 ==使用該switch語句選擇要執行的許多代碼塊之一。== **語法** ```javascript= switch(expression) { case x: // code block break; case y: // code block break; default: // code block } ``` * switch 表達式被評估一次 * 將表達式的值與每種情況的值進行比較 * 如果匹配,則執行關聯的代碼塊 * 如果不匹配,則執行默認代碼塊 **例子** ```javascript= let day; switch (day = 5) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thursday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; } //會印出Friday ``` **中斷關鍵字** ==當 JavaScript 遇到break 關鍵字時,它會跳出 switch 塊。== 這將停止 switch 塊內的執行。 沒有必要打破 switch 塊中的最後一個 case。無論如何,塊在那里中斷(結束)。 ==注意:如果省略 break 語句,即使評估與 case 不匹配,也會執行下一個 case。== **默認關鍵字** default如果沒有大小寫匹配,關鍵字指定要運行的代碼: **例子** 如果今天既不是星期六 (6) 也不是星期日 (0),則寫一條默認消息: ```javascript= let text; switch (text = 3) { case 6: text = "Today is Saturday"; break; case 0: text = "Today is Sunday"; break; default: text = "Looking forward to the Weekend"; } //會印出 Looking forward to the Weekend ``` ## if 的使用時機 * 單純的專案 * 少量需要判斷的條件 * 有範圍選項的條件 ## switch 的使用時機 * 用於不需要比較的判斷 * 複雜的專案 * 需要大量判斷的條件 * 有確定選項的條件 ###### 參考文章 * [JavaScript|if… else… / switch 差異](https://medium.com/@sunnyhuang.sc/%E6%8A%80%E8%A1%93%E7%AD%86%E8%A8%98-javascript-if-else-switch-%E5%B7%AE%E7%95%B0-337a910763f6) * [avaScript 的 if 跟 switch 效能](https://hsiangfeng.github.io/javascript/20200117/3217748743/) * [JavaScript switch 語法](https://www.fooish.com/javascript/switch-case.html) * [JavaScript開關語句](https://www.w3schools.com/js/js_switch.asp)