Kurzusok
/
JavaScript
JavaScript
/
Tanterv
/
Switch utasítás
Sw

Switch utasítás ebben a kurzusban: JavaScript

4 feladat

A(z) Switch utasítás fogalomról

Általános szintaxis

A JavaScriptben az elágazás mellett a switch utasítással is futtathatsz feltételesen kódot. Akkor használjuk, ha egyetlen változót több lehetőséggel kell összehasonlítani. Az összehasonlítás szigorú egyenlőség (===) vizsgálatával történik, lásd az összehasonlítás fogalmat. Egy x változó esetén a JavaScript switch utasításának szintaxisa a következő.

switch (x) {
  case option1:
    // code that is executed when "x === option1" is true
    break;
  case option2:
    // code that is executed when "x === option2" is true
    break;
  default:
    // code that is executed when x does not equal any of the
    // options
}

A default eset elhagyható; akkor használjuk, ha olyan kódot szeretnél futtatni, amikor a változó egyik másik lehetőséggel sem egyezik.

Alapértelmezés szerinti átesés

A fenti break utasításokra azért van szükség, mert a JavaScriptben alapértelmezés szerint minden eset „átesik” a következőre. Ez azt jelenti, hogy break utasítás nélkül az elsőként egyező lehetőség utáni esetek teljes kódja is lefutna, pedig x nem egyezett azokkal a lehetőségekkel. Ez az „alapértelmezett átesés” gyakori buktató, amikor switch-et használsz JavaScriptben. Egy függvényen belül a break helyett return-t is használhatsz, hogy elkerüld ezt a problémát.

Az átesés viselkedését a javadra is fordíthatod, ha ugyanazt a kódot szeretnéd több esetre alkalmazni. Erre példát az MDN dokumentációjában találsz.

Scope

Alapértelmezés szerint a különböző case esetekben lévő változók ugyanazon a scope-on osztoznak. Ez váratlan viselkedéshez vezethet. Ha például egy esetet kimásolsz és beillesztesz, könnyen előfordulhat, hogy két esetben is lesz egy let message deklaráció, ami hibát okoz; lásd az MDN dokumentációját. A közös scope miatti problémák elkerülésére minden esethez külön scope-ot hozhatsz létre úgy, hogy kapcsos zárójelekkel kódblokkot adsz az egyes esetekhez.

switch (x) {
  case option1: {
    // Variables declared here are contained to this case.
    break;
  }
  case option2: {
    // ...
    break;
  }
  default: {
    // ...
  }
}

Kifejezések használata

Az x változó helyett kifejezést is használhatsz. Ezt a kifejezést a switch utasítás elején egyszer értékeli ki a program, és az eredményt az esetekkel hasonlítja össze. Gyakori felhasználása a „típus szerinti switch”, amely a változó típusától függően más-más kódot futtat.

switch (typeof x) {
  case 'string':
    // code that is executed when x is a string
    break;
  case 'number':
    // code that is executed when x is a number
    break;
  default:
    // code that is executed when x has some other type
}

A lehetőségek maguk is lehetnek kifejezések.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Switch utasítás fogalmat