Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

?- oder Ternary-Operator

Ein zwei oder drei Operatoren

Javascript Operationen agieren mit Operatoren, die wichtigsten sind +, -, /, =, * und %. Operatoren lassen sich drei Typen zuordnen:

Unäre (Unary) Operatoren, auch einstellige Verknüpfung
Ein Operand vor oder nach dem Operator
Verneinung oder Negation: !N, x2
Zweistellige (Binary) Operatoren
Zwei Operatoren: einer vor und einer nach dem Operator
Addition a + b
Dreifach (Ternary) Operatoren
Drei Operatoren, Kurzform einer if-then-else Abfrage
t = alter < 16 ? "10€" : "50€"

Ternary wird bei einfachen if then else Bedingungen eingesetzt, wenn das Ergebnis der Bedingung true oder false ist.

if ( alter < 18) {       // Bedingung
   serveApfelsaft ();    // true
} else {
   serveWein();          // false
}

Anstelle der langatmigen if then else-Anweisung tritt die bedingte Zuweisung durch den Ternary-Operator.

Der Ternary-Operator hat drei Operanden: Der erste Operand ist die Bedingung, der zweite Operand wird zurückgegeben, wenn die Bedingung true liefert und der dritte Operand wird zurückgegeben, wenn die Bedingung false liefert.

            Operand 1    Operand 2   Operand 3
               |            |           |
let foo = (Bedingung) ? wenn true : wenn false;

Bevor man die Ternary-Schreibweise wirklich intus hat, kann man den Ausdruck übersichtlich strukturieren:

tour.finished = 
	tour.walked > 10 
	? "Tour erfolgreich bewältigt" 
	: "noch nicht weit genug gelaufen";

Das Ergebnis der Bedingung – im Beispiel tour.walked > 10 – sollte true oder false sein, das Ergebnis ist der String "Tour erfolgreich bewältigt" oder "noch nicht weit genug gelaufen".

Beispiel für Ternary

Anstelle von

let member = document.getElementsByName("member");
let ticket;
for (let i=0; i<2; i++) {
   member[i].onclick = function () {
      if (this.value === "1") {
         ticket = "€ 10";
      } else {
         ticket = "€ 50";
      }
   }
}

reicht eine Zeile:

                     +-- Bedingung
                     |
ticket = (this.value === "1") ? "€ 10" : "€ 50";
                                   ^        ^
                                   |        |
            Bedingung trifft zu ---+        +--- Bindung trifft nicht zu 

Das liest sich: Wenn Mitglied gewählt ist, ist kostet das Ticket € 10 und sonst € 50. Der Ternary-Operator spart bei einfachen if…else-Anweisungen ein paar Zeilen und das Erzeugen einer neuen Variablen.

Ternary sinnvoll oder nicht sinnvoll?

Die einen sagen, ein Ternary-Operator anstelle von if then else trägt zur Übersichtlichkeit und Lesbarkeit des Skriptcodes bei, weil Anweisungen in einer Zeile besser nachvollziehbar sind. Die anderen sagen, if-then-Statements sind leichter zu lesen und liefern beim Kompilieren den effizienteren Code.

Sinnvoll ist Ternary u.U. in einfachen Booleschen Abfragen, in denen er ein oder zwei Zeilen Scriptcode einspart. Da sind wir auf einem homöopathischen Level der Optimierung.