In una recensione del codice che stavo facendo a un collega, l'ho detto qui:
if (someValue === 'final'){
Non ha senso usare il confronto rigoroso perché l'unico modo per passarlo come vero è con un altro valore di stringa uguale a finale.
Penso che sia abbastanza:
if (someValue == 'final'){
Il suo argomento è che un oggetto potrebbe avere un metodo toString che restituisce quella stringa ma rigorosamente non ha lo stesso tipo di dati.
Anche se è vero, come un computer (che non è intelligente come umano), d'altra parte, non ha senso, perché alla fine del modo l'unico modo per passare questo come vero è con una stringa uguale a alla finale. Questo era il suo codice di esempio:
Test = function(){}
Test.prototype.toString = function () { return 'final'; }
var disagreeDaniel = new Test();
document.getElementById('foo').innerHTML = (disagreeDaniel == 'final');
Quindi il mio punto qui ragazzi, è che ho bisogno che tu gli spieghi meglio perché non c'è il senso del rigido confronto su una rigida fissa come "finale" perché non c'è modo di passarlo come positivo con un valore diverso di 'final'. (il suo esempio alla fine restituisce la stringa)
Per me il confronto rigoroso è utile per booleani, nulli, non definiti, zero, dove in alcuni casi questi potrebbero passare tutti come falsi. Voglio sentire le tue opinioni.
====== Aggiornamento ==========
È facile identificare che le persone non leggono. La mia domanda era il senso dell'uso === da confrontare con 'finale'. Ho un sacco di spiegazioni su cose che non devo fare. Per il confronto con null, false, zero ecc., Ho detto che ho usato === per casi THOSE ma non per stringhe lunghe. ma le persone hanno cercato di spiegarmi su null, false, zero, ecc. Il verdetto fino ad ora è che non c'è un argomento SOLID (ce ne sono alcuni buoni ma non solidi) che dimostrano il motivo per cui usare === per il confronto con 'final' dovrebbe essere migliore di usare == (leggi di nuovo, è solo questo caso d'uso, sto parlando di uno specifico caso d'uso).
Ho anche parlato con il mio collega, gli ho dato il +1 al codice. Non ho problemi con ===, il mio problema non ha mai dovuto usarlo, il mio punto era sempre ed è, e sarà, quale dovrebbe essere il senso , e sembra che sarebbe una domanda con tuttavia risposta.
ps. l'altra cosa che ho imparato tempo fa è non essere mai aggressivo con altre opinioni; "argomenti tecnici" per diversi programmatori, sono come la religione per i religiosi (e alcuni ragazzi qui mi hanno appena ricordato).
ps2. Ho deciso di essere democratico, non voglio dimostrare nulla, ho solo pensato che questo sito fosse per buone discussioni, e l'ho capito. : D