Avatar ·

Welchen Vergleichsoperator sollte man in JavaScript verwenden: == oder ===?

Hallo zusammen! Ich habe gerade angefangen, JavaScript zu lernen und bin auf eine unverständliche Situation gestoßen. Es gibt anscheinend zwei Operatoren für Vergleiche: doppeltes Gleich (==) und dreifaches Gleich (===). Aber sie funktionieren unterschiedlich, und ich kann nicht verstehen, wann ich welchen verwenden soll.\n\nHier ist ein Beispiel, das mich verwirrt hat:\n\n```javascript\nconsole.log(5 == "5"); // true\nconsole.log(5 === "5"); // false\n```\n\nWarum werden im ersten Fall 5 und "5" als gleich betrachtet, im zweiten aber nicht? Es handelt sich doch um eine Zahl und einen String, unterschiedliche Datentypen! Ich dachte, der Vergleich sollte streng sein.\n\nEin weiteres Beispiel:\n\n```javascript\nconsole.log(false == 0); // true\nconsole.log(false === 0); // false\n```\n\nDas ist noch seltsamer: false ist gleich null? Aber false ist ein Boolean-Wert und 0 eine Zahl. Wie ist das möglich?\n\nIch habe gelesen, dass == Typen konvertiert, a