2019年3月5日 星期二

[Back To Basic] Javascript - Switch

若有超過2種以上的可能,用if else難以閱讀,便可用switch的陳述式。

語法(Syntax)

switch(expression) {
  case x:
    break;
  case y:
    break;
  default:
}

expression依依由上而下一一比對case的值,若比對成功則執行相對應的邏輯。

Example

var week = new Date().getDay();
var displayWeek = '';
switch (week) {
    case 1:
        displayWeek = "星期一";
        break;
    case 2:
        displayWeek = "星期二";
        break;
    case 3:
        displayWeek = "星期三";
        break;
    case 4:
        displayWeek = "星期四";
        break;
    case 5:
        displayWeek = "星期五";
        break;
    default:
        // 1,6
        displayWeek = "周末";
        break;
}

break

跳出該case的邏輯,若沒設定break; 還會進到下一個case去,不管符不符合

default

  • 當沒有case比對到的時候,就無條件執行default。
  • 不一定要放在最後
  • 若沒有放在最後,記得加 break;

其他

  • 兩個case可以用同一段邏輯
...
case 1:
case 2:
  // logic
  break;
...
  • 如果多個case都成立,只會執行最先符合的case
  • 如果沒有case成立,就執行default邏輯
  • 如果連default都沒有,則跳出switch陳述式
  • switch的比對是用===來比對,也就是說值和型別都須符合

沒有留言:

張貼留言