Ci sono casi in cuiPuò contenere === quando == non lo fa?
x == y //false
x === y //true
è che mai possibile in JS? :)
Ci sono casi in cuiPuò contenere === quando == non lo fa?
x == y //false
x === y //true
è che mai possibile in JS? :)
Sarebbe impossibile. ==
confronta il valore, mentre ===
confronta valore e tipo. Il tuo caso richiederebbe una condizione impossibile.
a === b -> (typeof(a) == typeof(b)) && (value(a) == value(b))
a == b -> (value(a) == value(b))
Non si potrebbe avere il confronto di valore nel caso ==
essere vero, ma richiede la stessa identica confronto in ===
diventare falso.
No. Questo non è mai possibile. ===
controlla il tipo e l'uguaglianza. ==
solo controlli per l'uguaglianza. Se qualcosa non è ==
non può mai essere ===
.
In breve, se ===
è vero, allora ==
restituirà true. Se ===
restituisce false, quindi ==
può o non può restituire falso.
Esempi:
5===5
è vero, il che significa che 5==5
deve essere anche vero.
'5'===5
è falso e '5'==5
è vero.
'6'===5
è falso e '6'==5
è anche falso.
Questo comportamento è dovuto al fatto a===b
controlli per assicurarsi che il valore e il tipo di a
e b
sono uguali, mentre a==b
solo controlla per assicurarsi che i loro valori sono uguali.
Non lo penserei. Ma poi di nuovo, javascript non è mai a corto di sorprese – AmmarCSE
se la prima riga ha cambiato 'x' o' y' (usando un getter mutante o anche un valore di overloadOf), allora potrebbe succedere, ma sul suo volto, no. – dandavis
il modo più illustrativo ed educativo per vedere che non è possibile è guardare questa tabella https://dorey.github.io/JavaScript-Equality-Table/ –