Avatar ·

Kann (a == 1 && a == 2 && a == 3) in JavaScript true sein?

Hallo zusammen! Ich bin neu in JavaScript und bin bei einem Vorstellungsgespräch auf eine seltsame Aufgabe gestoßen. Man fragte mich: Kann der Ausdruck `(a == 1 && a == 2 && a == 3)` jemals wahr sein?\n\nAuf den ersten Blick scheint das völliger Unsinn zu sein. Wie kann dieselbe Variable `a` gleichzeitig 1, 2 und 3 sein? In jeder normalen Programmiersprache ist das unmöglich. Aber mir wurde gesagt, dass es in JavaScript Tricks gibt, die so etwas ermöglichen.\n\nIch verstehe, dass dies mit den Besonderheiten der Typumwandlung (type coercion) in JavaScript zusammenhängt, kann aber nicht herausfinden, wie genau das funktioniert. Wenn wir den strikten Vergleich `===` verwenden, funktioniert dieser Trick definitiv nicht, aber mit dem nicht-strikten `==` gibt es einige Schlupflöcher.\n\nKann vielleicht jemand erklären, wie das möglich ist? Mich interessieren nicht nur konkrete Implementierungen, sondern auch das zugrundeliegende Prinzip. Vielleicht gibt es mehrere Wege, dies zu erreichen?\n\nDanke im Voraus für eure Hilfe!