527 Stimmen

Wie verwendet man den ? (bedingter) Operator in JavaScript?

Mit einfachen Worten, was ist die ?: (bedingter, "ternärer") Operator und wie kann ich ihn verwenden?

0voto

Sunali Bandara Punkte 342

Wenn Sie eine Konditionsprüfungsinstanzfunktion in javascript . es ist einfach zu benutzen ternärer Operator . die nur noch eine einzige Zeile zu implementieren. Ex:

    private module : string ='';
    private page:boolean = false;
    async mounted(){
     if(this.module=== 'Main')
    {
    this.page = true;}
    else{
    this.page = false;
    }
}

Eine solche Funktion mit einer Bedingung kann wie folgt geschrieben werden.

this.page = this.module=== 'Main' ?true:false;

Bedingung ? if True : if False

2 Stimmen

Wäre es klarer, einfach zurückzugeben this.page = this.module=== 'Main' . es ist bereits ein Boolescher Wert.

0voto

Joakim Sandqvist Punkte 140

Dies ist wahrscheinlich nicht gerade die eleganteste Art, dies zu tun. Aber für jemanden, der mit ternären Operatoren nicht vertraut ist, könnte sich dies als nützlich erweisen. Ich persönlich bevorzuge einzeilige Fallbacks anstelle von Bedingungsblöcken.

  // var firstName = 'John'; // Undefined
  var lastName = 'Doe';

  // if lastName or firstName is undefined, false, null or empty => fallback to empty string
  lastName = lastName || '';
  firstName = firstName || '';

  var displayName = '';

  // if lastName (or firstName) is undefined, false, null or empty
  // displayName equals 'John' OR 'Doe'

  // if lastName and firstName are not empty
  // a space is inserted between the names
  displayName = (!lastName || !firstName) ? firstName + lastName : firstName + ' ' + lastName;

  // if display name is undefined, false, null or empty => fallback to 'Unnamed'
  displayName = displayName || 'Unnamed';

  console.log(displayName);

Ternärer Operator

0voto

Travis Webb Punkte 14024

Es heißt die ternary operator . Weitere Informationen finden Sie in einer anderen Frage, die ich zu diesem Thema beantwortet habe:

Wie schreibt man eine IF else-Anweisung ohne 'else'?

5 Stimmen

Eigentlich ist ternär die Typ des Operators (d.h. er hat 3 Teile). Der Name des dieser spezifische ternäre Operator ist die conditional operator . Zufällig gibt es in JS nur einen ternären Operator, so dass die Begriffe falsch verwendet werden.

-5voto

 (sunday == 'True') ? sun="<span class='label label-success'>S</span>" : sun="<span class='label label-danger'>S</span>";

 sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"

0 Stimmen

Sie können html auch mit dem ternären Operator anhängen

0 Stimmen

So sollte man eine ternäre Zuordnung wirklich nicht schreiben und auch === nicht == verwenden, sonst könnte man auch einfach sunday ? .es sollte sein sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"

0 Stimmen

Der Sinn der ternären Bedingung besteht darin, die Werte der bedingten Zuweisung zu verkürzen, andernfalls sollten Sie einfach eine if-Anweisung verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X