Wenn Sie entweder das eine oder das andere verwenden können, wählen Sie den strengen Vergleich, weil:
- Es hat eine bessere Leistung
- Sie verhindert unerwartete Ergebnisse
Beim Vergleich von Zeichenketten kann es immer noch zu unerwarteten Ergebnissen kommen, weil eine Zeichenkette leer sein könnte oder eine Variable, die Sie für eine Zeichenkette halten, in Wirklichkeit keine ist.
Sie würden niemals den Vergleich zweier String-Literale verwenden, da er immer auf TRUE oder FALSE reduziert werden kann. Zum Beispiel:
if ('...' === '...')
ist dasselbe wie
if (TRUE)
Da Sie also immer mindestens eine Variable vergleichen werden, müssen Sie davon ausgehen, dass Sie unerwartete Ergebnisse erhalten können.
Die Benchmark-Ergebnisse verschiedener strenger und lockerer Vergleiche finden Sie unter http://net-beta.net/ubench/ . Ich habe auch meine eigenen Tests durchgeführt und bin zu den gleichen Ergebnissen gekommen.
Dabei handelt es sich um eine Mikrooptimierung, d. h., Sie sollten bestehenden Code nicht ändern, da dies keinen spürbaren Unterschied macht, aber wenn Sie neuen Code schreiben, können Sie die effizientesten Techniken anwenden.