Christian Schubert: Frage zu logischen Operatoren

Beitrag lesen

Hallo,

okay, es ist offensichtlich Zeit, eine kleine Pause einzulegen... 😆

STIMMT, console.log() liefert ja selbst nicht true zurück 🤦‍♂️

Müsste natürlich so formuliert sein (dann funktioniert es auch wie erwartet):

console.log(Var === 1 && "Var ist 1!" || "Var ist nicht 1!");

Und verwende keinesfalls den Variablennamen Var. var ist ein reserviertes Wort und Var ist dem viel zu ähnlich.

Auch foo ist nur ein Dummy-Variablenname, als Platzhalter für sinnvollere Namensgebungen gedacht. Prinzipiell hast du aber vollkommen recht, darauf hinzuweisen - immerhin wird der Thread vielleicht auch von anderen gelesen, die sich dann daran ein schlechtes Beispiel nehmen, hatte ich nicht bedacht.

Boolesche Operatoren sind hier aber nicht das Mittel der Wahl. Verwende den ternären Operator ?:, um den Meldungstext zu bestimmen.

👍

Der ternäre Operator war es, der die Verwirrung überhaupt erst gestiftet hat. Denn

foo === 1 ? console.log("foo ist 1") : console.log("foo ist nicht 1");

erzielt den gewünschten Effekt,

foo === 1 && console.log("foo ist 1!") || console.log("foo ist nicht 1!");

eben [logischerweise] nicht.

Danke für deine Zeit.