💯 If-else in Kurzform - Javascript
Die Kurzform der if-else
-Anweisung in JavaScript wird als ternärer Operator bezeichnet. Er ist wie folgt aufgebaut:
Bedingung ? AusdruckWennWahr : AusdruckWennFalsch;
Erklärung:
Bedingung
: Dies ist die Bedingung, die Sie auswerten möchten (genau wie in einer normalenif
-Anweisung).?
: Trennt die Bedingung von den Ausdrücken.AusdruckWennWahr
: Dieser Ausdruck wird ausgeführt, wenn die Bedingungwahr
ist.:
: Trennt die Ausdrückewahr
undfalsch
.AusdruckWennFalsch
: Dieser Ausdruck wird ausgeführt, wenn die Bedingungfalsch
ist.
Beispiel:
let age = 18;
let message = age >= 18 ? 'Sie sind erwachsen.' : 'Sie sind minderjährig.';
console.log(message); // Ausgabe: „Sie sind erwachsen.“
In diesem Beispiel:
- Wenn
age >= 18
true
ist, lautet der Wert vonmessage
„Sie sind erwachsen.“
- Wenn
age >= 18
false
ist, lautet der Wert vonmessage
„Sie sind minderjährig.“
Fallstricke:
-
Lesbarkeit: Ternäre Operatoren sind großartig für einfache Bedingungen, aber bei komplexerer Logik oder verschachtelten Bedingungen können sie Ihren Code schwer lesbar machen. Für komplexe Logik ist es normalerweise besser, vollständige
if-else
-Blöcke zu verwenden. -
Übermäßigen Gebrauch vermeiden: Zu viele ternäre Operatoren in einer Reihe oder tief verschachtelte ternäre Operatoren können schnell schwer verständlich werden.
Komplexes Beispiel:
let score = 85;
let grade = score >= 90 ? 'A' : score >= 80 ? 'B' : 'C';
console.log(grade); // Ausgabe: "B"
In diesem Fall wertet der verschachtelte ternäre Operator mehrere Bedingungen auf kompakte Weise aus. Aber auch hier gilt: Bei komplexerer Logik sind standardmäßige if-else
-Blöcke oft besser lesbar.
If Else ALlgemein
In JavaScript sind if-Abfragen eine Möglichkeit, Entscheidungen im Code zu treffen, indem sie einen Ausdruck auf Wahr oder Falsch prüfen. Die Syntax ist dabei sehr einfach:
Grundlegende Syntax:
if (Bedingung) {
// Code, der ausgeführt wird, wenn die Bedingung wahr ist
} else {
// Code, der ausgeführt wird, wenn die Bedingung falsch ist
}
Hier ein Beispiel:
let score = 75;
if (score >= 90) {
console.log('Note: Sehr gut');
} else if (score >= 75) {
console.log('Note: Gut');
} else {
console.log('Note: Verbesserungswürdig');
}
1. Funktionsweise der if-Abfrage
Die if-Abfrage überprüft die angegebene Bedingung. Wenn die Bedingung wahr ist, wird der Code innerhalb des ersten Blocks (if
) ausgeführt. Ist sie falsch, wird der else
-Block ausgeführt (sofern vorhanden). Es ist auch möglich, mehrere Bedingungen mit else if
zu prüfen.
- Wahrheitswerte: In JavaScript wird alles, was als „wahr“ oder „falsch“ interpretiert werden kann, als truthy oder falsy bezeichnet.
- Falsy-Werte in JavaScript:
false
,0
,""
(leere Zeichenkette),null
,undefined
,NaN
. - Alle anderen Werte gelten als truthy.
- Falsy-Werte in JavaScript:
Beispiel mit falsy-Werten:
let value = 0;
if (value) {
console.log('Wert ist wahr');
} else {
console.log('Wert ist falsch');
}
Da 0
ein falsy-Wert ist, wird die Ausgabe “Wert ist falsch” sein.
2. Gotchas in JavaScript mit if-Abfragen
Beim Arbeiten mit if
-Abfragen in JavaScript gibt es einige Fallstricke, die du im Auge behalten solltest:
2.1. Typenkonversion (Type Coercion)
JavaScript ist eine schwach typisierte Sprache, was bedeutet, dass es versucht, Werte automatisch in einen anderen Typ zu konvertieren, wenn es eine Bedingung überprüft. Dies kann zu unerwarteten Ergebnissen führen.
if (0 == false) {
console.log('0 ist gleich false');
}
Ergebnis: “0 ist gleich false” wird ausgegeben, weil der Wert 0
zu einem falsy-Wert konvertiert wird, was bei der schwachen Vergleichsoperation (==
) zu einem wahren Vergleich führt.
Lösung: Strikter Vergleich mit ===
Verwende den strikten Vergleichsoperator ===
, um die Typen nicht automatisch konvertieren zu lassen.
if (0 === false) {
console.log('Das wird nicht ausgeführt');
} else {
console.log('0 ist nicht gleich false');
}
Ergebnis: “0 ist nicht gleich false”, da der strikte Vergleich auch den Datentyp berücksichtigt.
2.2. Nicht deklarierte Variablen
In JavaScript kannst du auf nicht deklarierte Variablen zugreifen, was zu einem Fehler führt.
if (myVariable) {
console.log('Diese Variable existiert');
}
Wenn myVariable
nicht deklariert ist, erhältst du einen ReferenceError. Um dies zu vermeiden, solltest du Variablen immer deklarieren oder typeof
verwenden, um deren Existenz zu prüfen.
if (typeof myVariable !== 'undefined') {
console.log('Variable ist deklariert');
}
2.3. Verschachtelte if-Abfragen (Nested Ifs)
Wenn if
-Abfragen zu stark verschachtelt werden, kann der Code schwer lesbar und wartbar werden. Dies nennt man „Callback-Hell“ oder „Pyramid of Doom“.
if (a > 5) {
if (b < 10) {
if (c === 3) {
console.log('Komplexer verschachtelter Fall');
}
}
}
Lösung: Verwende logische Operatoren
Du kannst solche Verschachtelungen vermeiden, indem du logische Operatoren wie &&
und ||
verwendest:
if (a > 5 && b < 10 && c === 3) {
console.log('Elegantere Lösung');
}
2.4. Das Fehlen eines else
-Zweigs
Es gibt Fälle, in denen du nicht berücksichtigst, was passiert, wenn die Bedingung falsch ist, was zu unbeabsichtigten Lücken in der Logik führen kann.
let temperature = 30;
if (temperature > 25) {
console.log('Es ist heiß');
}
// Keine Handlung, wenn temperature <= 25
Es kann sinnvoll sein, immer einen else
-Zweig hinzuzufügen, um unerwartete Szenarien zu behandeln:
if (temperature > 25) {
console.log('Es ist heiß');
} else {
console.log('Es ist angenehm oder kühl');
}
2.5. Vorsicht bei leeren Arrays und Objekten
In JavaScript sind leere Arrays und leere Objekte truthy, auch wenn sie „leer“ aussehen.
if ([]) {
console.log('Ein leeres Array wird als wahr betrachtet');
}
if ({}) {
console.log('Ein leeres Objekt wird als wahr betrachtet');
}
Dies ist ein häufiges Missverständnis, insbesondere für Entwickler, die von Sprachen kommen, in denen leere Strukturen falsy sein können.
3. Kurzschreibweise mit dem ternären Operator
Der ternäre Operator ist eine Kurzschreibweise für einfache if
-Abfragen.
let age = 20;
let access = (age >= 18) ? 'Zugang erlaubt' : 'Zugang verweigert';
console.log(access);
Dies ersetzt eine einfache if
-Abfrage durch eine kompaktere und übersichtlichere Lösung, wenn nur eine Bedingung und eine Alternative erforderlich ist.
4. If-Abfrage ohne Klammern
Es ist in JavaScript möglich, eine if
-Abfrage ohne geschweifte Klammern {}
zu schreiben, wenn sie nur einen einzelnen Befehl enthält. Das kann aber zu schwer lesbarem und fehleranfälligem Code führen:
if (age >= 18) console.log('Zugang erlaubt');
Best Practice: Immer Klammern verwenden
Um Missverständnisse und Wartungsprobleme zu vermeiden, ist es eine gute Praxis, immer Klammern zu verwenden, auch bei einzeiligen Anweisungen:
if (age >= 18) {
console.log('Zugang erlaubt');
}
Zusammenfassung
- If-Abfragen ermöglichen Entscheidungslogik in JavaScript.
- Achte auf Typkonvertierungen und verwende strikten Vergleich (
===
). - Vermeide zu tiefe Verschachtelungen, indem du logische Operatoren verwendest.
- Sei dir über das Verhalten von truthy und falsy Werten bewusst, insbesondere bei leeren Arrays und Objekten.
- Nutze den ternären Operator für einfache Bedingungen, aber übertreibe es nicht.
Mit diesen Tipps kannst du sicherstellen, dass deine if
-Abfragen in JavaScript korrekt und effizient funktionieren.