Wie kann ich eine Inline- if
Anweisung in JavaScript verwenden? Gibt es auch eine Inline- else
Anweisung?
Etwas wie das:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
javascript
if-statement
ternary-operator
conditional-operator
immer mit der Ruhe
quelle
quelle
Antworten:
Sie benötigen nicht unbedingt jQuery. JavaScript allein wird dies tun.
Die
c
Variable ist,minor
wenn der Wert isttrue
undmajor
wenn der Wert istfalse
.Dies wird als bedingter (ternärer) Operator bezeichnet.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
quelle
if (a < b) c = 'major';
Zum
if
Inline- Schreiben einer Anweisung sollte der darin enthaltene Code nur eine Anweisung sein:quelle
Es gibt einen ternären Operator wie diesen:
quelle
0 < 1 : 5 : 120;
ist eine absolut gültige Aussage. Ein wenig nutzlos, es sei denn, Sie werden pro Zeile bezahlt.if
in einem solchen Fall die einfache alte langweilige Anweisung verwenden, wird Ihr Code wahrscheinlich viel einfacher zu lesen und zu verstehen sein und es ist weniger wahrscheinlich, dass er mit späteren Änderungen bricht.Sie können ein if / else auch nur mit logischen Operatoren approximieren.
Das Obige ist ungefähr dasselbe wie zu sagen:
Und natürlich ungefähr das Gleiche wie:
Ich sage grob, weil es bei diesem Ansatz einen Unterschied gibt, dass Sie wissen müssen, dass der Wert von
b
als wahr bewertet wird, sonst erhalten Sie immerc
. Grundsätzlich müssen Sie erkennen, dass der Teil, der erscheinen würde,if () { here }
jetzt Teil der Bedingung ist, die Sie platzierenif ( here ) { }
.Dies ist aufgrund des JavaScripts-Verhaltens möglich, bei dem einer der ursprünglichen Werte, die den logischen Ausdruck gebildet haben, übergeben / zurückgegeben wird, was vom Typ des Operators abhängt. Bestimmte andere Sprachen wie PHP führen das tatsächliche Ergebnis der Operation fort, dh wahr oder falsch, was bedeutet, dass das Ergebnis immer wahr oder falsch ist. z.B:
Ein Hauptvorteil im Vergleich zu einer normalen if-Anweisung besteht darin, dass die ersten beiden Methoden auf der rechten Seite eines Arguments ausgeführt werden können, dh als Teil einer Zuweisung.
Die einzige Möglichkeit, dies mit einer Standard-if-Anweisung zu erreichen, besteht darin, die Zuordnung zu duplizieren:
Sie fragen sich vielleicht , warum die Verwendung nur logische Operatoren anstelle der Ternary Operator , für einfache Fälle wahrscheinlich würden Sie nicht, es sei denn , Sie wollten sicherstellen,
a
undb
waren beide wahr. Mit den logischen Operatoren können Sie auch optimierte komplexe Bedingungen erreichen, die mit verschachtelten ternären Operationen ziemlich chaotisch werden können. Wenn Sie jedoch möchten, dass Ihr Code leicht lesbar ist, sind beide nicht wirklich so intuitiv.quelle
Im Klartext erklärte die Syntax:
Kann geschrieben werden als:
quelle
condition ? true
true
false
und""
sollte alles in Ordnung sein, um den else-Teil zu ignorieren.2 == 2 ? doSomething()
wäre das das gleiche wieif (2 == 2) doSomething()
?: false
oder: ""
sollte da sein, da Javascript dies erwartet.quelle
Wenn Sie nur eine Inline-IF (ohne ELSE) möchten, können Sie den logischen AND-Operator verwenden:
Wenn Sie auch eine ELSE benötigen, verwenden Sie die von den anderen Personen vorgeschlagene ternäre Operation.
quelle
In JavaScript können Sie dies folgendermaßen tun:
quelle
Zu Ihrer Information, Sie können bedingte Operatoren erstellen
Wenn Ihre Logik ausreichend komplex ist, können Sie ein IIFE verwenden
Wenn Sie diese Logik mehr als einmal verwenden möchten, müssen Sie sie natürlich in eine Funktion einkapseln, um die Dinge schön und trocken zu halten.
quelle
Ich muss oft mehr Code pro Bedingung
( , , )
ausführen , indem ich Folgendes verwende: Mehrere Codeelemente können Folgendes ausführen:quelle
Um dies hinzuzufügen, können Sie auch die Inline-if-Bedingung mit && und || verwenden Betreiber. So was
quelle
Ist die Frage nicht wesentlich: Kann ich folgendes schreiben?
Die Antwort lautet: Ja, das oben Gesagte wird übersetzt.
Seien Sie jedoch vorsichtig, wenn Sie Folgendes tun
Stellen Sie sicher, dass Sie mehrdeutigen Code in geschweifte Klammern setzen, da dies eine Ausnahme auslöst (und ähnliche Permutationen zu unerwünschtem Verhalten führen).
quelle
Inline wenn:
wahrheitsgemäße Schlussfolgerung: Aussagen, die ausgeführt werden, wenn die Hypothese wahr ist
Falsey Fazit: Aussagen, die ausgeführt werden, wenn die Hypothese falsch ist
Ihr Beispiel:
quelle