Необязательность break в конструкции switch-case в JavaScript

Команда break в конструкции switch-case не является обязательной. При отсутствии break после выполнения задуманного case, выполнятся и все case ниже него.

Давайте посмотрим на примере:

javascriptlet num = 1; // пусть здесь число 1

switch (num) {
  case 1:
    console.log(1); // сработает это
  case 2:
    console.log(2); // сработает и это
  case 3:
    console.log(3); // сработает и это
}

Изменим значение переменной:

javascriptlet num = 2; // пусть здесь число 2

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // сработает это
  case 3:
    console.log(3); // сработает и это
}

Изменим значение переменной:

javascriptlet num = 3; // пусть здесь число 3

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // сработает это
}

Иногда такую особенность используют, при решении задач. Смотрите пример:

javascriptlet num = 1;
let res;

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

console.log(res);

Очевиднее, однако, решить такую задачу через if:

javascriptlet num = 1;
let res;

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

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

console.log(res);