„JavaScript“ trigubo lygybės ženklas VS dvigubo lygybės ženklas - palyginimo operatoriai, paaiškinti pavyzdžiais

Galbūt „JavaScript“ matėte dvigubo ir trigubo lygių ženklus. Bet ką jie reiškia?

Na trumpai: ==savaime konvertuoja tipą ir ===nekonvertuoja tipo.

„Double Equals“ ( ==) tikrina tik vertės lygybę. Tai savaime daro tipo prievartą. Tai reiškia, kad prieš tikrindamas reikšmes jis konvertuoja kintamųjų tipus, kad jie atitiktų vienas kitą.

Kita vertus, „Triple Equals“ ( ===) neatlieka tipo prievartos. Jis patikrins, ar lyginamieji kintamieji turi tą pačią vertę IR tą patį tipą.

Gerai. Taigi padėkime jums geriau suprasti skirtumą pateikdami keletą pavyzdžių. Apsvarstykite kiekvieno iš šių teiginių rezultatus.

1 pavyzdys:

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

Vertė ir tiek tipo fooir baryra tas pats. Todėl rezultatas yra trueabiem.

2 pavyzdys: ‌

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

Čia vertė numberir stringNumberpanaši išvaizda. Tačiau tipas numberyra Numberir tipas stringNumberYRA string. Nors reikšmės yra vienodos, tipas nėra tas pats. Taigi ==patikrinimas grįžta true, bet patikrinus vertę ir tipą, vertė yra false.

3 pavyzdys:

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

Priežastis: ta pati vertė, skirtingas tipas. Tipo prievarta

Tai įdomus atvejis. 0Kai tikrinama, vertė falseyra ta pati. Taip yra todėl, kad 0ir falseturi tą pačią „JavaScript“ vertę, tačiau patikrinus tipą ir vertę, vertė yra klaidinga, nes 0yra numberir falseyra boolean.

4 pavyzdys:

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

Tuščios eilutės vertė ir falseta pati „JavaScript“. Vadinasi, ==grįžta tiesa. Tačiau tipas yra kitoks ir todėl ===pateikia klaidingą.

Kada turėtumėte naudoti ==ir kada ===?

Jei kyla abejonių, naudokite ===. Tai sutaupys jus nuo daugybės galimų klaidų.

Jei palaikote naudojimo atvejį, kai galite būti šiek tiek atlaidus dėl gaunamų duomenų tipo, tada naudokite ==. Pavyzdžiui, jei API priima tiek "true"ir trueiš kliento, naudojimas ==. Trumpai tariant, nenaudokite, ==nebent turite tvirtą naudojimo atvejį.

Čia yra patogi „JavaScript“ tiesos lentelė, skirta jūsų nuorodoms ir parodyti, kaip sudėtinga „JavaScript“ lygybė:

Jei jums patiko šis straipsnis, būtinai sekite mane „Twitter“ ir gaukite naujinių.

K .: Kiek vietos bus atlaisvinta, kai Didžioji Britanija išstos iš ES?

.

.

.

A: 1 GB # DevJoke #NotAJoke

- Shruti Kapoor (@ shrutikapoor08) 2019 m. Spalio 4 d