Spring til indhold
Academi.dk

JavaScript

Sammenligninger og ===

Begynder DA↔EN-ordliste

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

OperatorSpørger omEksempel der er sandt
===er de præcis ens?5 === 5
!==er de forskellige?5 !== 6
> <større eller mindre7 > 3
>= <=større/mindre eller lig med5 >= 5

Alle sammen giver true eller false, og det er den værdi, en if bruger.

Eksempel
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.

Eksempel
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:

Eksempel
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.

Eksempel
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:

Eksempel
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.
Eksempel
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 som 0 == "".
  • 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

Senest gennemgået .