JavaScript tredobbelt ligestil vs dobbelt ligestil - sammenligningsoperatører forklaret med eksempler
Du har muligvis set tegn på dobbelt og tredobbelt lig i JavaScript. Men hvad betyder de?
Kort sagt: ==
konverterer i sagens natur type og ===
konverterer ikke type.
Double Equals ( ==
) kontrollerer kun for værdilighed. Det betyder i sagens natur tvang. Det betyder, at inden kontrol af værdierne konverteres typerne af variablerne til at matche hinanden.
På den anden side ===
udfører Triple Equals ( ) ikke type tvang. Det vil kontrollere, om variablerne, der sammenlignes, har både den samme værdi OG den samme type.
OK - så lad os hjælpe dig med at forstå forskellen bedre gennem et par eksempler. For hver af disse skal du overveje, hvad resultatet af disse udsagn vil være.
Eksempel 1:
const foo = "test" const bar = "test" console.log(foo == bar) //true console.log(foo === bar) //true
Værdien og typen af begge foo
og bar
er ens. Derfor er resultatet true
for begge.
Eksempel 2:
const number = 1234 const stringNumber = '1234' console.log(number == stringNumber) //true console.log(number === stringNumber) //false
Værdien af number
og stringNumber
ligner her. Men den type number
er Number
og typen af stringNumber
sige string
. Selvom værdierne er ens, er typen ikke den samme. Derfor ==
vender en check tilbage true
, men når den kontrolleres for værdi og type, er værdien false
.
Eksempel 3:
console.log(0 == false) //true console.log(0 === false) //false
Årsag: samme værdi, anden type. Skriv tvang
Dette er en interessant sag. Værdien af 0
når kontrolleret med false
er den samme. Det skyldes, at 0
og false
har den samme værdi for JavaScript, men når det kontrolleres for type og værdi, er værdien falsk, fordi den 0
er a number
og false
er boolean
.
Eksempel 4:
const str = "" console.log(str == false) //true console.log(str === false) //false
Værdien af tom streng og false
er den samme i JavaScript. Derfor ==
vender tilbage sandt. Typen er dog anderledes og ===
returnerer derfor falsk.
Hvornår skal du bruge, ==
og hvornår skal du bruge ===
?
Brug i tvivlstilfælde ===
. Dette sparer dig for masser af potentielle fejl.
Hvis du støtter en brugssag, hvor du kan være lidt skånsom med hensyn til typen af indgående data, skal du bruge ==
. For eksempel, hvis en API accepterer både "true"
og true
fra klienten, skal du bruge ==
. Kort sagt, brug ikke, ==
medmindre du har en stærk brugstilfælde til det.
Her er en praktisk JavaScript-sandhedstabel til din reference og til at vise dig, hvor kompliceret lighed der er i JavaScript:

Hvis du kunne lide denne artikel, skal du følge mig på twitter for opdateringer.
Spørgsmål: Hvor meget plads frigøres, når Storbritannien forlader EU?
.
.
.
A: 1 GB # DevJoke #NotAJoke
- Shruti Kapoor (@ shrutikapoor08) 4. oktober 2019