La opcionalidad de break en la construcción switch-case en JavaScript

El comando break en la construcción switch-case no es obligatorio. En ausencia de break después de ejecutar el case previsto, también se ejecutarán todos los case debajo de él.

Veamos un ejemplo:

javascriptlet num = 1; // supongamos que aquí está el número 1

switch (num) {
  case 1:
    console.log(1); // esto se activará
  case 2:
    console.log(2); // esto también se activará
  case 3:
    console.log(3); // esto también se activará
}

Cambiemos el valor de la variable:

javascriptlet num = 2; // supongamos que aquí está el número 2

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // esto se activará
  case 3:
    console.log(3); // esto también se activará
}

Cambiemos el valor de la variable:

javascriptlet num = 3; // supongamos que aquí está el número 3

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // esto se activará
}

A veces, esta característica se utiliza al resolver problemas. Mira el ejemplo:

javascriptlet num = 1;
let res;

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

console.log(res);

Sin embargo, es más obvio resolver este problema mediante if:

javascriptlet num = 1;
let res;

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

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

console.log(res);