ECMAScript switch-sats

switch-satsen

switch-satsen är en syskon till if-satsen.

Utvecklare kan använda switch-satsen för att tillhandahålla en uppsättning fall (case) för ett uttryck.

switch-sats grammatik:

switch (expression)
  case value: statement;
    break;
  case value: statement;
    break;
  case value: statement;
    break;
  case value: statement;
    break;
...
  case value: statement;
    break;
  default: statement;

Varje fall (case) representerar "om" expression är lika med value,utför statement

Nyckelordet break får koden att hoppa ut från switch-satsen. Om det inte finns något break, kommer koden att fortsätta att köra in i nästa case.

Nyckelordet default anger vad som ska hända om uttryckets resultat inte matchar något av fallen (faktiskt är det relativt till else-satsen).

Switch-satsen används huvudsakligen för att undvika att utvecklare ska skriva följande kod:

if (i == 20)
  alert("20");
else if (i == 30)
  alert("30");
else if (i == 40)
  alert("40");
else
  alert("other");

En ekvivalent switch-sats är så här:

switch (i) {
  case 20: alert("20");
    break;
  case 30: alert("30");
    break;
  case 40: alert("40");
    break;
  default: alert("other");
}

Switch-satsen i ECMAScript och Java

Det finns två skillnader mellan switch-satsen i ECMAScript och Java. I ECMAScript kan switch-satsen användas för strängar och kan använda icke-konstanta värden för att beskriva fall:

var BLUE = "blue", RED = "red", GREEN = "green";
switch (sColor) {
  case BLUE: alert("Blue");
    break;
  case RED: alert("Red");
    break;
  case GREEN: alert("Green");
    break;
  default: alert("Other");
}

Här används switch-satsen för strängen sColor, där case använder variablerna BLUE, RED och GREEN, vilket är helt giltigt i ECMAScript.