JavaScript
Sammenligninger og ===
En sammenligning giver true eller false. Du bruger === til at spørge, om to værdier er ens, og !== til at spørge, om de er forskellige. De tre lighedstegn betyder, at typen også skal passe, og det er derfor === er sikrere end det gamle ==.
Forudsætter, at du har set datatyper i javascript .
De operatorer, du bruger
| Operator | Spørger om | Eksempel der er sandt |
|---|---|---|
=== | er de præcis ens? | 5 === 5 |
!== | er de forskellige? | 5 !== 6 |
> < | større eller mindre | 7 > 3 |
>= <= | større/mindre eller lig med | 5 >= 5 |
Alle sammen giver true eller false, og det er den værdi, en if bruger.
console.log(5 === 5);
console.log(5 !== 6);
console.log("a" < "b");
console.log(10 >= 11); Output
Tryk på “Kør koden”.
Hvorfor tre lighedstegn og ikke to
== sammenligner også, men den laver først typerne om, så de passer. Det lyder
hjælpsomt og er det næsten aldrig.
console.log(5 == "5");
console.log(5 === "5");
console.log(0 == "");
console.log(0 === ""); Output
Tryk på “Kør koden”.
Med == er tallet 5 og teksten "5" “ens”. Med === er de det ikke, fordi
typerne er forskellige. Den anden linje er værre: tallet 0 og den tomme tekst
regnes som ens med ==. Det er en fejl, der kan ligge og gemme sig i et program
i lang tid, indtil et felt tilfældigvis er tomt.
Reglen er enkel: brug altid === og !==. Vil du sammenligne på tværs af
typer, laver du selv den ene om først, så det er tydeligt, hvad der sker:
const fraFelt = "18";
if (Number(fraFelt) === 18) {
console.log("Tallet passer");
} Output
Tryk på “Kør koden”.
Sammenligning af tekst
Tekst sammenlignes bogstav for bogstav efter tegnenes nummer i tegntabellen. Det giver alfabetisk rækkefølge for almindelige små bogstaver, men store bogstaver kommer før alle små, og æ, ø og å ligger efter z.
console.log("banan" > "appelsin");
console.log("Banan" > "appelsin");
console.log("æble" > "banan"); Output
Tryk på “Kør koden”.
Skal du sortere danske ord ordentligt, bruger du localeCompare med "da", som
kender det danske alfabet:
const ord = ["østers", "banan", "æble", "appelsin"];
ord.sort((a, b) => a.localeCompare(b, "da"));
console.log(ord); Output
Tryk på “Kør koden”.
Kombinér med og, eller og ikke
&&betyder “og”: begge sider skal være sande.||betyder “eller”: mindst én side skal være sand.!betyder “ikke”: vender sandt til falsk.
const alder = 20;
const harBillet = false;
console.log(alder >= 18 && harBillet);
console.log(alder >= 18 || harBillet);
console.log(!harBillet); Output
Tryk på “Kør koden”.
De to første stopper, så snart svaret er givet. Er venstre side af && falsk,
kigger JavaScript slet ikke på højre side. Det bruges hele tiden til at undgå
fejl: if (bruger && bruger.navn) kigger kun efter navn, hvis der overhovedet
er en bruger.
Kort opsamling
- Brug
===og!==. Altid. ==laver typerne om og giver overraskelser som0 == "".- Tekst sammenlignes tegn for tegn; brug
localeCompare(…, "da")til sortering. - To lister eller objekter er kun ens, hvis det er præcis den samme.
Læs videre
- if og else if, else og else if i JavaScript forklaret på dansk. Sådan får du programmet til at vælge, og sådan undgår du de tre klassiske begynderfejl.
- 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 .