Zum Inhalt springen

JavaScript-Logikoperatoren (&&, ||, !)

Logische Operatoren sind entscheidend, um den Ablauf und die Entscheidungsfindung in JavaScript zu steuern. Dieser Leitfaden soll Anfängern helfen, JavaScripts logische Operatoren—&&, ||, ! und !!—zu verstehen und effektiv zu verwenden, mit umfassenden und vollständig erklärten Beispielen.

Überblick über JavaScript-Logikoperatoren

Logische Operatoren in JavaScript werden verwendet, um Bedingungen auszuwerten und auf Grundlage der Operanden einen Wert zurückzugeben; sie werden oft eingesetzt, um ein Boolean-Ergebnis zu erzeugen. Dazu gehören:

  • && (Logisches UND)
  • || (Logisches ODER)
  • ?? (Nullish Coalescing Operator, technisch eigenständig, wird aber häufig mit logischen Operatoren zusammengefasst)
  • ! (Logisches NICHT)
  • !! (Doppeltes NICHT)

Logisches UND (&&)

Der &&-Operator gibt nur dann true zurück, wenn beide Operanden true sind. In JavaScript gibt er tatsächlich den Wert des ersten falsy-Operanden oder, wenn alle truthy sind, den Wert des letzten Operanden zurück (Short-Circuiting). Er wird verwendet, wenn mehrere Bedingungen gleichzeitig erfüllt sein müssen.


Output appears here after Run.

In diesem Beispiel müssen sowohl isLoggedin als auch hasPermissions true sein, damit Zugriff gewährt wird. Wenn einer von beiden false ist, wird der Zugriff verweigert.

Logisches ODER (||)

Der ||-Operator gibt true zurück, wenn mindestens einer der Operanden true ist. In JavaScript gibt er den Wert des ersten truthy-Operanden oder, wenn alle falsy sind, den Wert des letzten Operanden zurück (Short-Circuiting). Er ermöglicht Fallback- oder Alternativbedingungen.


Output appears here after Run.

Hier kann die Operation fortgesetzt werden, wenn entweder networkStatus gleich 'good' ist oder savedOffline true ist, wodurch ein Fallback bereitgestellt wird, falls der Netzwerkstatus schlecht ist.

INFO

Verwenden Sie den Nullish-Coalescing-Operator ??, um Standardwerte nur dann zu setzen, wenn Variablen null oder undefined sind. Er ist eine sauberere Alternative zu ||, besonders beim Umgang mit falsy Werten wie 0 oder '', die nicht auf Standardwerte zurückfallen sollen.

Nullish-Coalescing-Operator

Dieser Operator ist im Vergleich zu || besonders nützlich, wenn falsy Werte wie 0 oder '' gültig sind und keine Standardwerte auslösen sollen. Zum Beispiel:


Output appears here after Run.

In diesem Beispiel wird itemCount auf 0 gesetzt. Mit ?? bleibt defaultCount 0, weil ?? nur auf null oder undefined reagiert, nicht auf andere falsy Werte. Das verhindert unbeabsichtigte Standardwerte und macht Ihre Absicht klar.

Logisches NICHT (!)

Der !-Operator kehrt die Truthiness seines Operanden um. Er ist nützlich, um Zustände umzuschalten oder auf Nicht-Bedingungen zu prüfen.


Output appears here after Run.

Dieses Beispiel prüft, ob isActive false ist, und zeigt dann an, dass eine Aktivierung erforderlich ist.

Doppeltes NICHT (!!)

Der !!-Operator wandelt einen Wert in einen Boolean um und stellt sicher, dass er strikt entweder true oder false darstellt.


Output appears here after Run.

!!0 ergibt false, weil 0 in JavaScript ein falsy Wert ist. Das doppelte NICHT verdeutlicht die Boolean-Konvertierung.

Verwendung von !! zur Prüfung des Boolean-Status einer Objekteigenschaft

Manchmal möchten Sie prüfen, ob eine Objekt-Eigenschaft nicht nur vorhanden, sondern auch truthy ist. Der !!-Operator eignet sich perfekt, um jeden Wert in einen strikt booleschen Kontext zu überführen und klar sowie eindeutig zu machen, ob die Eigenschaft die Bedingungen erfüllt.

Stellen Sie sich ein Szenario vor, in dem Sie ein Benutzerobjekt haben, das möglicherweise eine Eigenschaft namens isActive besitzt. Sie möchten eine Aktion nur dann ausführen, wenn isActive nicht nur vorhanden, sondern auch truthy ist.


Output appears here after Run.

In diesem Beispiel:

  • Das Benutzerobjekt hat eine Eigenschaft isActive, die undefined ist.
  • Durch !!user.isActive wird undefined in false umgewandelt.
  • Da isActive undefined ist (ein falsy Wert), ergibt !!undefined false, und die Ausgabe lautet "John is not active."

Praktische Anwendungsszenarien

Bedingtes Rendern


Output appears here after Run.

Dieses Snippet zeigt die Verwendung von && für bedingtes Rendern und gibt 'UserDashboard' nur dann aus, wenn isLoggedIn true ist.

Standardwerte mit logischem ODER verwalten


Output appears here after Run.

Wenn currentUser null ist, erhält userName standardmäßig den Wert 'Guest'. Dadurch wird sichergestellt, dass eine Begrüßung immer personalisiert ist.

Komplexe Bedingungen vereinfachen


Output appears here after Run.

Dieser Code gewährt nur verifizierten Benutzern, die entweder Admins oder Editoren sind, vollen Zugriff und verwendet dabei effektiv sowohl && als auch ||.

Best Practices

  • Komplexität vermeiden: Halten Sie logische Ausdrücke einfach. Wenn sie zu komplex werden, teilen Sie sie in kleinere, handhabbare Teile auf.
  • Short-Circuiting nutzen: Verwenden Sie die Short-Circuit-Eigenschaft von && und ||, um die Leistung zu optimieren, indem unnötige Auswertungen vermieden werden.
  • Explizite Boolean-Konvertierung: Verwenden Sie !!, um Werte klar in true oder false umzuwandeln und so die Lesbarkeit und Vorhersagbarkeit Ihres Codes zu verbessern.
  • Konsistente Vergleiche: Stellen Sie bei Vergleichen konsistente Datentypen sicher, um unerwartetes Verhalten durch JavaScripts Typumwandlung zu vermeiden.

Fazit

Das Verständnis und die Verwendung logischer Operatoren in JavaScript ist entscheidend, um effektiven und effizienten Code zu schreiben. Mit gut erklärten Beispielen und Best Practices können Sie diese Operatoren meistern und so die Funktionalität und Zuverlässigkeit Ihrer JavaScript-Anwendungen verbessern. Experimentieren Sie mit diesen Operatoren, um ihr Potenzial in verschiedenen Szenarien vollständig zu verstehen.

Practice

What is the behavior of the logical operators in JavaScript?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.