JavaScript hármas egyenlőségjel VS kettős egyenlőségjel - összehasonlító operátorok példákkal magyarázva

Lehet, hogy kettős és hármas egyenlőségjeleket látott a JavaScript-ben. De mit jelentenek?

Nos, röviden: ==eredendően konvertálja a típust, és ===nem konvertálja a típust.

A Double Equals ( ==) csak az értékegyenlőséget ellenőrzi. Jellemzően teszi a típusú kényszert. Ez azt jelenti, hogy az értékek ellenőrzése előtt átalakítja a változók típusait, hogy azok illeszkedjenek egymáshoz.

Másrészt a Triple Equals ( ===) nem hajt végre típusú kényszert. Ellenőrizni fogja, hogy az összehasonlított változók értéke azonos-e és ugyanaz a típus.

Rendben - néhány példával segítünk jobban megérteni a különbséget. Mindegyiknél vegye figyelembe, hogy mi lesz ezeknek az állításoknak a kimenete.

1. példa:

const foo = "test" const bar = "test" console.log(foo == bar) //true console.log(foo === bar) //true 

Az érték és a típus két fooés barugyanaz. Ezért az eredmény truemindkettőre érvényes.

2. példa: ‌

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

Az érték numberés stringNumberhasonlít itt. Azonban az a fajta numbervan Numberés típusa stringNumberIS string. Annak ellenére, hogy az értékek megegyeznek, a típus nem ugyanaz. Ezért egy ==ellenőrzés visszatér true, de ha ellenőrizzük az értéket és a típust, az érték az false.

3. példa:

console.log(0 == false) //true console.log(0 === false) //false 

Ok: ugyanaz az érték, más típusú. Típus kényszer

Ez egy érdekes eset. A (z) 0jelölőnégyzet falseértéke megegyezik. Ez azért van, mivel 0és falseugyanazt az értéket a JavaScript, de amikor ellenőrizni típus és érték, az érték hamis, mert 0egy numberés falsevan boolean.

4. példa:

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

Az üres karakterlánc falseértéke megegyezik a JavaScript-ben. Ezért ==igaz. A típus azonban más, ezért ===hamis értéket ad vissza.

Mikor ==és mikor kell használni ===?

Ha kétségei vannak, használja ===. Ez rengeteg potenciális hibától ment meg.

Ha támogat egy olyan felhasználási esetet, amikor kissé engedékeny lehet a bejövő adatok típusára, akkor használja ==. Például, ha egy API elfogadja mind "true", és trueaz ügyfél használja ==. Röviden: ne használja, ==hacsak nincs rá erős használati esete.

Itt van egy praktikus JavaScript igazságtábla, amely bemutatja, mennyire bonyolult az egyenlőség a JavaScriptben:

Ha tetszett ez a cikk, mindenképpen kövesse a twitteren a frissítéseket.

K: Mennyi hely szabadul fel, ha Nagy-Britannia kilép az EU-ból?

.

.

.

V: 1 GB # DevJoke #NotAJoke

- Shruti Kapoor (@ shrutikapoor08) 2019. október 4