JavaScript/Operatoren/ternärer Operator
Der bedingte Operator ?:
ist ein Operator in JavaScript, der eine kürzere Alternative zu bedingten Anweisungen darstellt.
Er wird oft auch als ternärer Operator bezeichnet, was irreführend ist, weil „ternär“ auf die Anzahl seiner Operanden hinweist und nicht auf das, was er tut. Aber da es sich bei ?:
um den einzigen ternären Operator handelt, den die Sprache besitzt, weiß trotzdem jeder, was gemeint ist.
Der bedingte Operator kombiniert drei Operanden durch die Zeichen ?
und :
Syntax
Bedingung ? Ausdruck1 : Ausdruck2
-
Bedingung
: Ausdruck, der als wahr oder falsch ausgewertet werden kann. -
Ausdruck1, Ausdruck2
: Ausdrücke mit Werten eines beliebigen Typs.
Je nachdem, ob der Wert des Bedingungsoperanden wahr (oder wahr-artig) ist oder nicht, wird Ausdruck1 oder Ausdruck2 ausgewertet, um das Ergebnis des bedingten Operators zu bestimmen. Der jeweils andere Ausdruck wird dann ignoriert und nicht ausgewertet.
function fuehrendeNull(zahl) {
zahl = (zahl < 10 ? '0' : '' ) + zahl;
return zahl;
}
Dass derjenige Ausdruck, der nicht benötigt wird, ignoriert wird, ist eine wichtige Tatsache.
let mittelwert = anzahl > 0 ? summe / anzahl : 0;
anzahl = 0
der erste Ausdruck, summe / anzahl
, nicht ignoriert würde, ergäbe sich eine Division durch 0 und damit ein Programmabbruch.Siehe auch
Weblinks
- ECMAScript Spezifikation: conditional operator
- MDN: Conditional (ternary) Operator
fuehrendeNull()
wird eine Zahl mittels des ternären Operators? :
überprüft, ob sie kleiner als 10 ist. Falls diese Bedingung zutrifft, wird ihr der Wert vor dem Doppelpunkt (die 0) vorangestellt. Falls nicht, wird der hintere Wert verwendet, der aus einem leeren String besteht.