Opcjonalność break w konstrukcji switch-case w JavaScript

Polecenie break w konstrukcji switch-case nie jest obowiązkowe. W przypadku braku break po wykonaniu zamierzonego case, wykonają się również wszystkie case poniżej niego.

Spójrzmy na przykład:

javascriptlet num = 1; // niech tutaj będzie liczba 1

switch (num) {
  case 1:
    console.log(1); // to zadziała
  case 2:
    console.log(2); // to też zadziała
  case 3:
    console.log(3); // to też zadziała
}

Zmieńmy wartość zmiennej:

javascriptlet num = 2; // niech tutaj będzie liczba 2

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // to zadziała
  case 3:
    console.log(3); // to też zadziała
}

Zmieńmy wartość zmiennej:

javascriptlet num = 3; // niech tutaj będzie liczba 3

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // to zadziała
}

Czasami taką cechę wykorzystuje się przy rozwiązywaniu zadań. Spójrz na przykład:

javascriptlet num = 1;
let res;

switch (num) {
  case 1:
  case 2:
    res = 'a';
  break;
  case 3:
    res = 'b';
  break;
}

console.log(res);

Jednak bardziej oczywiste jest rozwiązanie takiego zadania za pomocą if:

javascriptlet num = 1;
let res;

if (num == 1 || num == 2) {
  res = 'a';
}

if (num == 3) {
  res = 'b';
}

console.log(res);