JavaScript
if og else
En if-sætning lader programmet vælge. Du skriver en betingelse i parentesen, og koden i krølleparenteserne kører kun, hvis betingelsen er sand. Med else angiver du, hvad der skal ske ellers, og med else if kan du stille flere spørgsmål efter hinanden.
Forudsætter, at du har set variabler i javascript .
Programmet skal kunne vælge
Indtil nu har din kode kørt oppefra og ned, én linje ad gangen. En if-sætning
er den første måde at bryde den rækkefølge på: den stiller et spørgsmål, og
afhængigt af svaret springes en blok kode enten over eller ej.
const alder = 17;
if (alder >= 18) {
console.log("Du må stemme");
} else {
console.log("Du må ikke stemme endnu");
} Output
Tryk på “Kør koden”.
Ret 17 til 19 og kør igen. Det er hele mekanikken: parentesen indeholder noget, der enten er sandt eller falsk, og kun den ene blok kører.
Flere muligheder med else if
Skal der være mere end to udfald, hænger du dem sammen. JavaScript prøver dem oppefra og ned og stopper ved den første, der er sand.
const karakter = 7;
if (karakter >= 10) {
console.log("Rigtig flot");
} else if (karakter >= 4) {
console.log("Bestået");
} else if (karakter === 2) {
console.log("Lige akkurat");
} else {
console.log("Ikke bestået");
} Output
Tryk på “Kør koden”.
Rækkefølgen betyder alt. Havde karakter >= 4 stået øverst, ville en 12’er også
ryge derind, fordi 12 jo også er større end 4, og så ville den flotte besked
aldrig blive skrevet. Test altid en else if-kæde med en værdi fra hver gren.
Betingelsen behøver ikke være en sammenligning
Alt, hvad du skriver i parentesen, bliver lavet om til sandt eller falsk. Det er værd at kende de værdier, der tæller som falske, fordi de dukker op hele tiden:
false0""(den tomme tekst)undefinednullNaN
Alt andet er sandt, også teksten "false" og tallet -1.
const navn = "";
if (navn) {
console.log("Der er skrevet et navn");
} else {
console.log("Feltet er tomt");
} Output
Tryk på “Kør koden”.
Det bruges konstant til at tjekke, om der overhovedet er en værdi, før man regner på den.
To vaner, der sparer dig for timer
Sæt altid krølleparenteser på. JavaScript tillader if (x) doNoget(); uden
dem, men så snart du tilføjer en linje mere, kører den anden linje altid, også
når betingelsen er falsk. Det er en klassisk fejl, og den er svær at få øje på.
Undgå at nedgrave if i if i if. Er du tre niveauer nede, kan du næsten
altid vende betingelsen om og komme ud tidligt i stedet:
function beskrivPris(pris) {
if (typeof pris !== "number") {
return "Ugyldig pris";
}
if (pris === 0) {
return "Gratis";
}
return "Koster " + pris + " kr.";
}
console.log(beskrivPris(0));
console.log(beskrivPris("400"));
console.log(beskrivPris(400)); Output
Tryk på “Kør koden”.
Kort opsamling
if (betingelse) { ... }kører blokken, når betingelsen er sand.else ifprøves oppefra og ned; den første sande vinder.- Tom tekst, 0,
undefined,nullogNaNtæller som falske. - Skriv altid krølleparenteser, også ved én linje.
Øv dig
Læs videre
- Sammenligninger og === Forskellen på == og === i JavaScript forklaret på dansk, med eksempler på de sammenligninger der giver overraskende svar, og hvordan du undgår dem.
- for-løkken Hvad er en for-løkke? Forklaret på dansk med eksempler du kan køre, og de to fejl der giver en løkke, som kører én gang for meget eller aldrig stopper.
- Datatyper i JavaScript Datatyper i JavaScript forklaret på dansk: number, string, boolean, undefined og null, og hvorfor 5 + "5" bliver til 55 i stedet for 10.
Senest gennemgået .