JavaScript Academy · leksjon

Løs kontra streng likhet

Forstå sammenligninger med == og ===.

Leksjon 2 av 413 trinn

Løs kontra streng likhet er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.

To likhetsoperatorer

JavaScript har to likhetsoperatorer. Streng likhet (trippel likhetstegn) sammenligner uten konvertering. løs likhet (doble likhetstegn) konverterer typer før sammenligningen.

console.log(1 === 1)
console.log(1 == "1")

Streng likhet

Streng likhet returnerer true bare når både typen og verdien er like. Ingen typekonvertering skjer.

console.log(5 === 5)
console.log(5 === "5")
console.log(true === 1)

Løs likhet konverterer typer

Løs likhet forsøker å konvertere operandene til en felles type før sammenligningen, noe som kan gi overraskende true-resultater.

console.log(5 == "5")
console.log(true == 1)
console.log(0 == false)

Tall og streng

Når De sammenligner et tall og en streng med løs likhet, konverteres strengen først til et tall.

console.log("10" == 10)
console.log("10" === 10)

Boolsk typekonvertering

Med løs likhet konverteres en boolsk verdi til et tall, slik at true blir 1 og false blir 0 før sammenligningen.

console.log(true == 1)
console.log(false == 0)
console.log(true == 2)

Null og undefined

Løs likhet behandler null og undefined som like, men ikke som lik noe annet, for eksempel null.

console.log(null == undefined)
console.log(null === undefined)
console.log(null == 0)

NaN-unntaket

NaN er ikke lik noen ting, heller ikke seg selv, med noen av operatorene. Bruk Number.isNaN for å kontrollere dette.

console.log(NaN === NaN)
console.log(NaN == NaN)
console.log(Number.isNaN(NaN))

Objektreferanser

Objekter sammenlignes etter referanse, ikke etter innhold. To forskjellige objekter med identiske egenskaper er aldri like.

const a = { x: 1 }
const b = { x: 1 }
console.log(a === b)
console.log(a === a)

Overraskende resultater med løs likhet

Løs likhet kan gi resultater som strider mot intuisjonen. En tom streng er lik null, og en tom array er lik false etter typekonvertering.

console.log("" == 0)
console.log([] == false)
console.log("0" == false)

Foretrekk streng likhet

De fleste stilguider anbefaler å bruke streng likhet som standard for å unngå skjulte feil med typekonvertering. Bruk løs likhet bare når De har en bevisst grunn til det.

const value = "42"
if (value === "42") {
  console.log("matched as string")
}

Kontrollere om en verdi er null eller undefined

En akseptert bruk av løs likhet er å kontrollere null og undefined samtidig, siden mønsteret med doble likhetstegn og null dekker begge.

function check(v) {
  if (v == null) {
    return "missing"
  }
  return "present"
}
console.log(check(undefined))
console.log(check(0))

Kort kontroll

Test kunnskapen Deres om likhet.

Oppsummering

Oppsummering: Trippel likhetstegn unngår typekonvertering; doble likhetstegn bruker den.

  • Streng likhet kontrollerer type og verdi
  • Løs likhet konverterer først til en felles type
  • null er bare løst lik undefined
  • Foretrekk streng likhet som standard
console.log(1 === 1)
console.log(1 == "1")
Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
59
Leksjoner
200

Ofte stilte spørsmål

Er leksjonen «Løs kontra streng likhet» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Løs kontra streng likhet», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Løs kontra streng likhet»?

Forstå sammenligninger med == og ===. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med JavaScript Academy?

Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Løs kontra streng likhet»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?

Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Truthy- og falsy-verdier
  2. Løs kontra streng likhet
  3. Implisitt typekonvertering i operasjoner
  4. Teknikker for eksplisitt konvertering
← Tilbake til JavaScript Academy