Intendo come è usato in JavaScript. Sei curioso di sapere perché questo non è supportato in più lingue? Come Java, ad esempio, non ce l'ha? Sembra essere un operatore molto utile da avere.
L'operatore "regolare" ==
di Javascript e PHP esegue conversioni implicite. ===
esiste quindi puoi omettere queste coercizioni quando non ne hai bisogno o non vuoi che vengano applicate. In molti altri linguaggi, compresi quelli dinamici (ad es. Python), le conversioni implicite sono molto meno frequenti. Cioè, gli interi possono essere convertiti in float quando si fa la matematica o il confronto, ma "1"
non va insieme a 1
. In quelle lingue, l'operatore ==
è fondamentalmente l'equivalente di ===
del linguaggio più lento.
Per prendere l'esempio, Java va anche oltre - il suo ==
considererà solo due espressioni uguali se valutano esattamente lo stesso riferimento, cioè gli stessi oggetti (i tipi primitivi sono, come al solito, un'eccezione). Non puoi diventare più severo. Cosa dovrebbe fare un ===
, considerare due riferimenti uguali solo se derivano dalle stesse espressioni? ; -)
In JavaScript ==
utilizza tipo coercizione per valutare l'uguaglianza.
0 == false //=> true
1 == true //=> true
null == undefined //=> true
L'uso di ===
elimina la coercizione di tipo, comportandosi come ci si aspetterebbe che l'operatore agisse. Se i tipi sono uguali e i valori sono uguali, restituisce true, altrimenti false.
Altre lingue che non utilizzano la coercizione di tipo per i controlli di uguaglianza non hanno bisogno di un ===
perché quella funzionalità è standard.
Leggi altre domande sui tag programming-languages syntax operators