Als Faustregel würde ich im Allgemeinen Folgendes verwenden ===
anstelle von ==
(und !==
anstelle von !=
).
Die Gründe werden in den obigen Antworten erläutert, und auch Douglas Crockford äußert sich recht deutlich dazu ( JavaScript: Die guten Seiten ).
Allerdings gibt es eine einzige Ausnahme : == null
ist ein effizienter Weg, um auf 'ist null oder undefiniert' zu prüfen:
if( value == null ){
// value is either null or undefined
}
Zum Beispiel verwendet jQuery 1.9.1 dieses Muster 43 Mal, und die JSHint-Syntaxüberprüfung bietet sogar die eqnull
aus diesem Grund eine entspannende Option.
Von der jQuery-Style-Guide :
Strenge Gleichheitsprüfungen (===) sollten zu Gunsten von == verwendet werden. Die einzige Ausnahme ist die Prüfung auf undefiniert und null durch null.
// Check for both undefined and null values, for some important reason.
undefOrNull == null;
EDIT 2021-03:
Heutzutage die meisten Browser Unterstützung der Nullischer Koaleszenzoperator ( ??
) und die Logische nullische Zuordnung (??=)
was eine prägnantere Art und Weise ermöglicht, um einen Standardwert zuzuweisen, wenn eine Variable z. B. null oder undefiniert ist:
if (a.speed == null) {
// Set default if null or undefined
a.speed = 42;
}
kann in jeder der folgenden Formen geschrieben werden
a.speed ??= 42;
a.speed ?? a.speed = 42;
a.speed = a.speed ?? 42;