JavaScriptSwitch-sats

switch 语句用于基于不同条件执行不同动作。

JavaScriptSwitch-sats

请使用 switch 语句来选择多个需被执行的代码块之一。

语法

switch(uttryck) {
     case n:
        Kodblock
        break;
     case n:
        Kodblock
        break;
     default:
        Standard kodblock
} 

Kodförklaring:

  • Beräkna switch-uttrycket en gång
  • Jämför värdet på uttrycket med varje cases värde
  • Om det finns en matchning, körs det tillhörande koden

Exempel

getDay() metoden returnerar numret 0 till 6 för veckodagsnumret (weekday number).

(Sunday=0, Monday=1, Tuesday=2 ..)

Detta exempel använder veckodagsnumret för att beräkna veckans namn:

switch (new Date().getDay()) {
    case 0:
        day = "Söndag";
        break;
    case 1:
        day = "Lördag";
         break;
    case 2:
        day = "Tisdag";
         break;
    case 3:
        day = "Måndag";
         break;
    case 4:
        day = "Onsdag";
         break;
    case 5:
        day = "Torsdag";
         break;
    case 6:
        day = "Fredag";
} 

Resultatet kommer att bli:


prova själv

break-nyckelordet

Om JavaScript möter break Nyckelord som hoppar ut ur switch-kodblocket.

Detta kommer att stoppa exekveringen av mer kod i kodblocket samt att testa case.

Om matchning hittas och uppgiften är klar, avbryts exekveringen (break). Det behövs ingen mer testning.

break Det kan spara mycket exekveringstid eftersom det "ignorerar" andra koder i switch-kodblocket.

Det behöver inte bryta av sista casen i switch-kodblocket. Kodblocket slutar naturligt här.

default-nyckelordet

default Nyckelordet specificerar vilken kod som körs när det inte finns något matchande case:

Exempel

getDay() Metoden returnerar numret 0 till 6 för veckodagarna.

Om dagens datum inte är lördag (6) eller söndag (0), ska ett standardmeddelande skrivas ut:

switch (new Date().getDay()) {
    case 6:
        text = "Det är lördag idag";
        break; 
    case 0:
        text = "Det är söndag idag";
        break; 
    default: 
        text = "Förväntar mig helgen~";
} 

text resultatet är:


prova själv

Standardcase behöver inte vara sista casen i switch-kodblocket:

Exempel

switch (new Date().getDay()) {
    default: 
        text = "Förväntar mig helgen!";
         break;
    case 6:
        text = "Det är lördag idag";
        break; 
    case 0:
        text = "Det är söndag idag";
} 

prova själv

Om default Är inte sista casen i switch-kodblocket, kom ihåg att använda break för att avsluta standardcase.

Vanliga kodblock

Ibland kan du behöva olika case för att använda samma kod.

I detta exempel delar case 4 och 5 samma kodblock, medan 0 och 6 delar ett annat kodblock:

Exempel

switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "Helgen är nära:)";
        break; 
    case 0:
    case 6:
        text = "Det är helgen idag~";
         break;
    default: 
        text = "Förväntar mig helgen!";
} 

prova själv

Detaljer om Switching

Om flera case matchar en case-värde, väljs den första case.

Om ingen matchande case hittas, fortsätter programmet med default-label.

Om ingen default-label hittas, fortsätter programmet med statement efter switch.

strikt jämförelse

Switch case använder strikt jämförelse (===)

Värdet måste vara av samma typ som det som ska matchas.

Strikta jämförelser kan endast vara sanna om operanderna tillhör samma typ.

I detta exempel kommer x att inte matcha:

Exempel

var x = "0";
switch (x) {
  case 0:
    text = "Av";
    break;
  case 1:
    text = "På";
    break;
  default:
    text = "Ingen värde funnet";
}

prova själv

litteratur

mer om JavaScriptSwitch-satsmer information, läs relaterade innehåll i JavaScript avancerad tutorial:

ECMAScript switch-sats
switch-sats är syskon till if-sats. Detta avsnitt introducerar användningen av switch-sats och skillnaderna från switch-sats i Java.