L'opzionalità di break nella costruzione switch-case in JavaScript

Il comando break nella costruzione switch-case non è obbligatorio. In assenza di break dopo l'esecuzione del case previsto, verranno eseguiti anche tutti i case sottostanti.

Vediamo un esempio:

javascriptlet num = 1; // supponiamo che qui ci sia il numero 1

switch (num) {
  case 1:
    console.log(1); // questo si attiverà
  case 2:
    console.log(2); // anche questo si attiverà
  case 3:
    console.log(3); // e anche questo si attiverà
}

Cambiamo il valore della variabile:

javascriptlet num = 2; // supponiamo che qui ci sia il numero 2

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // questo si attiverà
  case 3:
    console.log(3); // anche questo si attiverà
}

Cambiamo il valore della variabile:

javascriptlet num = 3; // supponiamo che qui ci sia il numero 3

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // questo si attiverà
}

A volte questa caratteristica viene utilizzata per risolvere problemi. Guarda l'esempio:

javascriptlet num = 1;
let res;

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

console.log(res);

Tuttavia, è più ovvio risolvere un tale problema tramite if:

javascriptlet num = 1;
let res;

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

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

console.log(res);