Verwenden Sie ===
wenn Sie mehrere Dinge in JavaScript vergleichen wollen, heißt das strikte Gleichstellung bedeutet dies, dass true zurückgegeben wird, wenn nur Typ und Wert sind identisch so dass es für Sie keine unerwünschte Typkorrektur gibt, wenn Sie die ==
ist der Typ im Grunde egal, und in vielen Fällen könnte es Probleme mit einem losen Gleichheitsvergleich geben.
Strenge Gleichheit mit ===
Strenge Gleichheit vergleicht zwei Werte auf Gleichheit. Keiner der beiden Werte wird implizit in einen anderen Wert umgewandelt, bevor er verglichen wird. Wenn die Werte unterschiedliche Typen haben, werden die Werte als ungleich betrachtet. Andernfalls, wenn die Werte denselben Typ haben und keine Zahlen sind, werden sie als gleich betrachtet, wenn sie denselben Wert haben. Wenn schließlich beide Werte Zahlen sind, werden sie als gleich angesehen, wenn sie beide nicht NaN sind und den gleichen Wert haben, oder wenn einer +0 und einer -0 ist.
var num = 0;
var obj = new String('0');
var str = '0';
console.log(num === num); // true
console.log(obj === obj); // true
console.log(str === str); // true
console.log(num === obj); // false
console.log(num === str); // false
console.log(obj === str); // false
console.log(null === undefined); // false
console.log(obj === null); // false
console.log(obj === undefined); // false
Lose Gleichheit mit ==
Lose Gleichheit vergleicht zwei Werte auf Gleichheit, nachdem sie beide Werte in einen gemeinsamen Typ. Nach Konvertierungen (eine oder beide Seiten können Konvertierungen durchlaufen), wird der endgültige Gleichheitsvergleich durchgeführt genau wie bei === durchgeführt. Lose Gleichheit ist symmetrisch: A == B hat immer die gleiche Semantik wie B == A für beliebige Werte von A und B (abgesehen von der Reihenfolge der angewandten Umwandlungen).
var num = 0;
var obj = new String('0');
var str = '0';
console.log(num == num); // true
console.log(obj == obj); // true
console.log(str == str); // true
console.log(num == obj); // true
console.log(num == str); // true
console.log(obj == str); // true
console.log(null == undefined); // true
// both false, except in rare cases
console.log(obj == null);
console.log(obj == undefined);