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 bar
ugyanaz. Ezért az eredmény true
mindkettő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 stringNumber
hasonlít itt. Azonban az a fajta number
van Number
és típusa stringNumber
IS 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) 0
jelölőnégyzet false
értéke megegyezik. Ez azért van, mivel 0
és false
ugyanazt az értéket a JavaScript, de amikor ellenőrizni típus és érték, az érték hamis, mert 0
egy number
és false
van 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 true
az ü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