Este posibil să fi văzut semne duble și triple egale în JavaScript. Dar ce înseamnă?

Ei bine, pe scurt: == convertește inerent tipul și === nu convertește tipul.

Dublu egal (==) verifică numai egalitatea de valoare. Intră în mod inerent de constrângere. Aceasta înseamnă că, înainte de a verifica valorile, convertește tipurile de variabile pentru a se potrivi.

Pe de altă parte, Triple Equals (===) nu efectuează constrângere de tip. Acesta va verifica dacă variabilele comparate au ambele aceeași valoare ȘI același tip.

OK – deci, să vă ajutăm să înțelegeți mai bine diferența prin câteva exemple. Pentru fiecare dintre acestea, luați în considerare rezultatul acestor afirmații.

Exemplul 1:

const foo = "test" 
const bar = "test"  

console.log(foo == bar) //true
console.log(foo === bar) //true                            

Valoarea și tipul ambelor foo și bar este la fel. Prin urmare, rezultatul este true pentru amandoi.

Exemplul 2: ‌

const number = 1234 
const stringNumber="1234"  

console.log(number == stringNumber) //true
console.log(number === stringNumber)  //false                                   

Valoarea a number și stringNumber arată similar aici. Cu toate acestea, tipul de number este Number și tipul de stringNumber este string. Chiar dacă valorile sunt aceleași, tipul nu este același. De aici a == verificați returnările true, dar când se verifică valoarea și tip, valoarea este false.

Exemplul 3:

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

Motiv: aceeași valoare, tip diferit. Tastați constrângerea

Acesta este un caz interesant. Valoarea a 0 când este verificat cu false este la fel. Este așa pentru că 0 și false au aceeași valoare pentru JavaScript, dar când se verifică tipul și valoare, valoarea este falsă deoarece 0 este un number și false este boolean.

Exemplul 4:

const str = ""

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

Valoarea șirului gol și false este același în JavaScript. Prin urmare, == revine adevărat. Cu toate acestea, tipul este diferit și, prin urmare === returnează fals.

Când ar trebui să utilizați == și când ar trebui să utilizați ===?

Când aveți dubii, utilizați ===. Acest lucru vă va scuti de o grămadă de potențiale erori.

Dacă susțineți un caz de utilizare în care puteți fi puțin îngăduitor cu privire la tipul de date primite, atunci utilizați ==. De exemplu, dacă un API acceptă ambele "true" și true de la client, utilizați ==. Pe scurt, nu folosiți == cu excepția cazului în care aveți un caz de utilizare puternic pentru acesta.

Iată un tabel de adevăr la îndemână JavaScript pentru referință și pentru a vă arăta cât de complicată este egalitatea în JavaScript:

JavaScript Triple Equals Sign VS Double Equals Sign Operatori
Sursă: https://dorey.github.io/JavaScript-Equality-Table/

Dacă ți-a plăcut acest articol, asigură-te că mă urmărești pe twitter pentru actualizări.