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

4.13.1Der Bedingungsoperator (?:)

Оглавление

Der Bedingungsoperator ist der einzige Ternäroperator – also ein Operator, der mit drei Operanden arbeitet – in JavaScript und wird in der Tat gelegentlich einfach als »der Ternäroperator« bezeichnet. Dieser Operator wird auch oft in der Form ?: geschrieben, obwohl er im Code nicht ganz in dieser Form erscheint. Weil dieser Operator drei Operanden hat, steht der erste vor dem ?, der zweite zwischen ? und : und der dritte nach dem :. Er wird wie folgt verwendet:

x > 0 ? x : -x // Der Absolutwert (Betrag) von x.

Die Operanden des Bedingungsoperators können beliebigen Typs sein. Der erste Operand wird ausgewertet und als boolescher Wert interpretiert. Ist der erste Operand ein nicht-strikt wahrer Wert, wird der zweite Operand ausgewertet, und dessen Wert wird zurückgeliefert. Ist der erste Operand hingegen ein nicht-strikt (»irgendwie«) falscher Wert, wird der dritte Operand ausgewertet, und dessen Wert wird zurückgeliefert. Es wird immer entweder der erste oder der zweite Operand ausgewertet.

Obgleich man mit der if-Anweisung (siehe 5.3.1) Ähnliches erreichen kann, erweist sich der ?:-Operator häufig als praktische Kurzform. Das folgende Beispiel zeigt eine typische Verwendung. Dabei wird geprüft, ob eine Variable definiert ist und einen sinnvollen, wahren Wert hat. Ist das der Fall, wird dieser Wert verwendet, andernfalls wird auf einen Vorgabewert ausgewichen:

greeting = "hello " + (username ? username : "there");

Das ist zur folgenden if-Anweisung äquivalent, aber erheblich kompakter:

greeting = "hello ";

if (username) {

greeting += username;

} else {

greeting += "there";

}

JavaScript  –  Das Handbuch für die Praxis

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