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

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

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

let num = 1; // пусть здесь число 1 switch (num) { case 1: console.log(1); // сработает это case 2: console.log(2); // сработает и это case 3: console.log(3); // сработает и это }

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

let num = 2; // пусть здесь число 2 switch (num) { case 1: console.log(1); case 2: console.log(2); // сработает это case 3: console.log(3); // сработает и это }

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

let num = 3; // пусть здесь число 3 switch (num) { case 1: console.log(1); case 2: console.log(2); case 3: console.log(3); // сработает это }

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

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

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

let num = 1; let res; if (num == 1 || num == 2) { res = 'a'; } if (num == 3) { res = 'b'; } console.log(res);
enru