Baseline Widely available
Der bedingte (ternäre) Operator ist der einzige JavaScript-Operator, der drei Operanden benötigt: eine Bedingung gefolgt von einem Fragezeichen (?
), dann ein Ausdruck, der ausgeführt wird, wenn die Bedingung wahrheitsgemäà (truthy) ist, gefolgt von einem Doppelpunkt (:
), und schlieÃlich der Ausdruck, der ausgeführt wird, wenn die Bedingung falsch (falsy) ist. Dieser Operator wird häufig als Alternative zu einem if...else
-Statement verwendet.
function getFee(isMember) {
return isMember ? "$2.00" : "$10.00";
}
console.log(getFee(true));
// Expected output: "$2.00"
console.log(getFee(false));
// Expected output: "$10.00"
console.log(getFee(null));
// Expected output: "$10.00"
Syntax
condition ? exprIfTrue : exprIfFalse
Parameter
condition
Ein Ausdruck, dessen Wert als Bedingung genutzt wird.
exprIfTrue
Ein Ausdruck, der ausgeführt wird, wenn die condition
einen wahrheitsgemäÃen (truthy) Wert ergibt (einen, der true
entspricht oder in true
umgewandelt werden kann).
exprIfFalse
Ein Ausdruck, der ausgeführt wird, wenn die condition
falsch (falsy) ist (das heiÃt, einen Wert hat, der in false
umgewandelt werden kann).
Neben false
sind mögliche falsy Ausdrücke: null
, NaN
, 0
, der leere String (""
) und undefined
. Ist condition
einer dieser Werte, wird das Ergebnis des bedingten Ausdrucks das Ergebnis der Ausführung des Ausdrucks exprIfFalse
sein.
const age = 26;
const beverage = age >= 21 ? "Beer" : "Juice";
console.log(beverage); // "Beer"
Umgang mit null-Werten
Ein häufiges Anwendungsbeispiel ist der Umgang mit einem Wert, der null
sein kann:
const greeting = (person) => {
const name = person ? person.name : "stranger";
return `Howdy, ${name}`;
};
console.log(greeting({ name: "Alice" })); // "Howdy, Alice"
console.log(greeting(null)); // "Howdy, stranger"
Bedingte Verkettungen
Der ternäre Operator ist rechts-assoziativ, was bedeutet, dass er in folgender Weise "verkettet" werden kann, ähnlich einer if ⦠else if ⦠else if ⦠else
-Kette:
function example() {
return condition1 ? value1
: condition2 ? value2
: condition3 ? value3
: value4;
}
Dies entspricht der folgenden if...else
-Kette.
function example() {
if (condition1) {
return value1;
} else if (condition2) {
return value2;
} else if (condition3) {
return value3;
} else {
return value4;
}
}
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4