Незадължителността на 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);