În acest scurt articol, vă voi prezenta versiunile de comutare JavaScript și modul de utilizare a acestora cu exemple practice.

Acest articol va explica mai bine cu exemple mai practice pentru a vă ajuta să înțelegeți mai bine cazurile de schimbare.

Condiții prealabile.

  • Cunoștințe de bază JavaScript
  • Editor de cod
  • Browser web
  • Creierul tău 🙂

A switch declarația poate înlocui practic mai mulți if verifică în JavaScript.

Oferă o modalitate mai descriptivă de a compara o valoare cu mai multe variante.

Sintaxa comutatorului

switch are una sau mai multe case blocuri și un caz implicit opțional.

switch(x) {
  case 'value1':  // if (x === 'value1')
    //code here
    [break]

  case 'value2':  // if (x === 'value2')
    //code here
    [break]

  default:
    //code here
    [break]
}
  • Valoarea a x este verificat pentru o egalitate strictă cu valoarea din prima case (acesta este, value1) apoi la al doilea (value2) și așa mai departe.
  • Dacă se constată egalitatea, switch începe să execute codul începând cu cel corespunzător case, până la cel mai apropiat break(sau până la sfârșitul anului switch).
  • Dacă nu se potrivește niciun caz, atunci default codul este executat (dacă există).

Câteva exemple reale

  • Comutator simplu de redare și pauză

switch declarația poate fi utilizată pentru mai multe ramuri bazate pe un număr sau un șir:

switch (movie) {
  case 'play':
    playMovie();
    break;
  case 'pause':
    pauseMovie();
    break;
  default:
    doNothing();
}

Dacă nu adăugați un break declarație, execuția va „trece” la nivelul următor. Este esențial să etichetați în mod deliberat căderea printr-un comentariu dacă ați menționat-o cu adevărat pentru a ajuta la depanare:

switch (movie) {
  case 'play': // fallthrough
  case 'pause':
    pauseMovie();
    break;
  default:
    doNothing();
}

Clauza implicită este opțională. Puteți avea expresii atât în ​​partea de comutare, cât și în cazuri, dacă doriți; comparațiile au loc între cele două folosind === operator:

switch (3 + 7) {
  case 5 + 5:
    correct();
    break;
  default:
    neverhappens();
}
  • Comutator simplu Maths Calc
let average = 2 + 6;

switch (average) {
  case 4:
    alert( 'Too small' );
    break;
  case 8:
    alert( 'Exactly!' );
    break;
  case 10:
    alert( 'Too large' );
    break;
  default:
    alert( "Incorrect values!" );
}

Aici switch începe să compare average din prima case variantă adică 4. Meciul eșuează.

Apoi 8. Aceasta este o potrivire, deci de la execuție începe case 8până la cel mai apropiat break.

Dacă nu este break apoi execuția continuă cu următoarea case fără nicio verificare.

Iată un exemplu fără break:

let average = 2 + 6;

switch (average) {
  case 4:
    alert( 'Too small' );
  case 8:
    alert( 'Exactly!' );
  case 10:
    alert( 'Too big' );
  default:
    alert( "Incorrect values!" );
}

În exemplul de mai sus vom vedea executarea secvențială a trei alerts:

alert( 'Exactly!' );
alert( 'Too big' );
alert( "Incorrect values!" );
  • getDay () metoda comutării cazului

getDay() metoda returnează ziua săptămânii ca număr între 0 și 6.

Duminică = 0, luni = 1, marți = 2, miercuri = 3, joi = 4, vineri = 5, sâmbătă = 6

Acest exemplu folosește numărul zilei săptămânii pentru a calcula numele zilei săptămânii:

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
     day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
}

Rezultatul zilei va fi ziua curentă a săptămânii în formatul zilei

PS: Acest lucru s-ar schimba în funcție de momentul în care citiți acest articol

Am scris acest articol pe 13/06/2019, care este joi, deci rezultatul ar fi:

Thursday

Cuvântul cheie implicit

Mod implicit cuvântul cheie specifică codul de rulat dacă nu există potrivire de caz, mai mult ca o instrucțiune else:

switch (new Date().getDay()) {
  case 6:
    text = "Today is Saturday";
    break; 
  case 0:
    text = "Today is Sunday";
    break; 
  default: 
    text = "Its not weekend yet!";
}

Rezultatul textului va fi:

Its not weekend yet!

Mod implicit cazul nu trebuie să fie ultimul caz dintr-un bloc de comutare:

switch (new Date().getDay()) {
  default: 
    text = "Its not weekend yet!";
    break;
  case 6:
    text = "Today is Saturday";
    break; 
  case 0:
    text = "Today is Sunday";
}

Dacă implicit nu este ultimul caz din blocul de comutare, nu uitați să încheiați cazul implicit cu o pauză.

Concluzie

Există atât de multe exemple practice de cazuri de comutare, la care vă puteți îndrepta google.com și efectuați o căutare rapidă pentru mai multe exemple de cazuri de schimbare.

Dacă acest articol v-a ajutat, arătați-l prin partajare.

Mulțumesc pentru lectură!