switch
-sætningen bruges til at udføre forskellige handlinger baseret på forskellige forhold.
switch
-erklæringenBrug switch
-sætningen til at vælge en af mange kodeblokke, der skal udføres.
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
Sådan fungerer det:
Skiftudtrykket evalueres én gang.
Værdien af udtrykket sammenlignes med værdierne for hvert enkelt tilfælde.
Hvis der er et match, udføres den tilhørende kodeblok.
Hvis der ikke er nogen match, udføres standardkodeblokken.
Metoden getDay()
returnerer ugedagen som et tal mellem 0 og 6.
(søndag=0, mandag=1, tirsdag=2 ..)
Dette eksempel bruger ugedagsnummeret til at beregne ugedagsnavnet:
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";
}
Dagens resultat bliver:
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let day;
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";
}
document.getElementById("demo").innerHTML = "Today is " + day;
</script>
</body>
</html>
break
Når JavaScript når en pause
nøgleord, bryder den ud af kontaktblokken.
Dette vil stoppe udførelsen inde i kontaktblokken.
Det er ikke nødvendigt at bryde det sidste tilfælde i en omskifterblok. Blokken knækker (slutter) der alligevel.
Bemærk: Hvis du udelader break-sætningen, vil den næste sag blive udført, selvom evalueringen stemmer ikke overens med sagen.
standard
søgeordetdefault
søgeordet angiver den kode, der skal køres, hvis der ikke er nogen case match:
Metoden getDay()
returnerer ugedagen som et tal mellem 0 og 6.
Hvis i dag hverken er lørdag (6) eller søndag (0), skriv en standardmeddelelse:
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
Resultatet af teksten bliver:
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let text;
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
standard
sagen behøver ikke at være den sidste sag i en switch blok:
switch (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let text;
switch (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Hvis default
ikke er det sidste tilfælde i switch-blokken, skal du huske at afslutte standardcasen med en pause.
Nogle gange vil du have anderledes skifte tilfælde for at bruge det samme kode.
I dette eksempel deler tilfælde 4 og 5 den samme kodeblok, og 0 og 6 deler en anden kodeblok:
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let text;
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Hvis flere sager matcher en sagsværdi, vælges den første sag.
Hvis der ikke findes nogen tilsvarende tilfælde, fortsætter programmet til standard-etiketten.
Hvis der ikke findes nogen standardetikette, fortsætter programmet til sætningen/sætningerne efter skiftet.
Skift sager bruger streng sammenligning (===).
Værdierne skal være af samme type for at matche.
En streng sammenligning kan kun være sand, hvis operanderne er af samme type.
I dette eksempel vil der ikke være noget match for x:
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>