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 fooog barer ens. Derfor er resultatet truefor begge.

Eksempel 2: ‌

const number = 1234 const stringNumber = '1234' console.log(number == stringNumber) //true console.log(number === stringNumber) //false 

Værdien af numberog stringNumberligner her. Men den type numberer Numberog typen af stringNumbersige 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 0når kontrolleret med falseer den samme. Det skyldes, at 0og falsehar den samme værdi for JavaScript, men når det kontrolleres for type og værdi, er værdien falsk, fordi den 0er a numberog falseer boolean.

Eksempel 4:

const str = "" console.log(str == false) //true console.log(str === false) //false

Værdien af ​​tom streng og falseer 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 truefra 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