Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 47

3.4Boolesche Werte

Оглавление

Ein boolescher Wert steht für wahr oder falsch, ein oder aus, ja oder nein. Es gibt nur zwei mögliche Werte dieses Typs. Die reservierten Wörter true und false werden zu diesen beiden Werten ausgewertet.

Boolesche Werte sind im Allgemeinen das Ergebnis von Vergleichen, die Sie in Ihren JavaScript-Programmen vornehmen, zum Beispiel:

a === 4

Dieser Code prüft, ob der Wert der Variablen a identisch mit der Zahl 4 ist. Ist das der Fall, lautet das Ergebnis dieses Vergleichs true. Ist a nicht gleich 4, lautet das Ergebnis des Vergleichs false.

Boolesche Werte kommen häufig in den Kontrollstrukturen von JavaScript zum Einsatz. Beispielsweise führt die if/else-Anweisung von JavaScript eine von zwei Aktionen aus, wenn ein boolescher Wert true ist, und die andere, wenn er false ist. Üblicherweise binden Sie den Vergleich, der den booleschen Wert erzeugt, direkt in die Anweisung ein, die ihn nutzt. Das sieht dann folgendermaßen aus:

if (a === 4) {

b = b + 1;

} else {

a = a + 1;

}

Dieser Code prüft, ob a gleich 4 ist. Ist das der Fall, addiert er 1 zu b hinzu; andernfalls addiert er 1 zu a hinzu.

Wie wir in 3.9 besprechen werden, kann jeder JavaScript-Wert in einen booleschen Wert umgewandelt werden. Die folgenden Werte werden in false konvertiert und verhalten sich deswegen auch wie false:

undefined

null

0

-0

NaN

"" // Der leere String.

Alle anderen Werte, einschließlich aller Objekte (und Arrays), werden in true konvertiert und verhalten sich wie true. false und die sechs Werte, die dazu umgewandelt werden, bezeichnet man bisweilen als falsy und alle anderen Werte als truthy. (Man spricht auch von nicht-strikt falsch oder wahr.) Immer wenn JavaScript einen booleschen Wert erwartet, funktioniert ein falsy-Wert wie false und ein truthy-Wert wie wahr.

Nehmen Sie zum Beispiel an, die Variable o enthielte entweder ein Objekt oder den Wert null. Dass o nicht null ist, könnten Sie dann explizit mit einer if-Anweisung wie der folgenden prüfen:

if (o !== null) …

Der Ungleichheitsoperator !== vergleicht o mit null und wird entweder zu true oder false ausgewertet. Sie können den Vergleich aber auch gleich weglassen und sich auf den Umstand stützen, dass null ein falscher Wert und ein Objekt hingegen ein wahrer Wert ist:

if (o) …

Im ersten Fall wird der Inhalt der if-Anweisung nur ausgeführt, wenn o nicht null ist. Der zweite Fall ist weniger exakt: Der if-Block wird ausgeführt, wenn o nicht false oder irgendein anderer falsy-Wert (wie null oder undefined) ist. Welche if-Anweisung für Ihr Programm geeignet ist, hängt davon ab, welche Werte o voraussichtlich zugewiesen werden. Wenn Sie null von 0 und "" unterscheiden müssen, sollten Sie einen expliziten Vergleich wählen.

Boolesche Werte haben eine toString()-Methode, mit der Sie sie in die Strings »true« oder »false« umwandeln können – weitere nützliche Methoden besitzen sie darüber hinaus nicht. Trotz dieser trivialen API gibt es drei boolesche Operatoren.

Der &&-Operator führt die boolesche UND-Verknüpfung durch. Er wird nur dann zu einem wahren Wert ausgewertet, wenn beide Operanden wahre Werte sind. Andernfalls wird er zu einem falschen Wert ausgewertet. Der ||-Operator|| (boolescher ODER-Operator)boolescher ODER-Operator (||) führt eine boolesche ODER-Operation aus: Er wird zu einem wahren Wert ausgewertet, wenn einer (oder beide) Operanden wahre Werte sind. Zu einem falschen Wert wird er nur ausgewertet, wenn beide Operanden falsche Werte sind. Außerdem gibt es noch den unären !-Operator, der eine boolesche NICHT-Operation durchführt: Er wird zu true ausgewertet, wenn sein Operand ein falscher Wert ist, und zu false, wenn sein Operand ein wahrer Wert ist, zum Beispiel:

if ((x === 0 && y === 0) || !(z === 0)) {

// x und y sind beide 0 oder z ist nicht 0.

}

Alle Einzelheiten zu diesen Operatoren finden Sie unter 4.10.

JavaScript  –  Das Handbuch für die Praxis

Подняться наверх