Wie kann ich eine Inline if
Anweisung in JavaScript? Gibt es eine Inline else
Aussage auch?
Etwa so:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
Wie kann ich eine Inline if
Anweisung in JavaScript? Gibt es eine Inline else
Aussage auch?
Etwa so:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
Sie brauchen nicht unbedingt jQuery. JavaScript allein wird dies tun.
var a = 2;
var b = 3;
var c = ((a < b) ? 'minor' : 'major');
Die c
wird die Variable minor
wenn der Wert true
und major
wenn der Wert false
.
Dies ist ein sogenannter bedingter (ternärer) Operator.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
Sie können ein if/else auch nur mit logischen Operatoren approximieren.
(a && b) || c
Das ist in etwa das Gleiche, wie zu sagen:
a ? b : c
Und natürlich ungefähr das Gleiche wie:
if ( a ) { b } else { c }
Ich sage "ungefähr", weil es bei diesem Ansatz einen Unterschied gibt, nämlich dass man wissen muss, dass der Wert von b
wird als wahr ausgewertet, andernfalls erhalten Sie immer c
. Grundsätzlich muss man sich darüber im Klaren sein, dass der Teil, der erscheinen würde if () { here }
ist nun Teil der Bedingung, die Sie stellen if ( here ) { }
.
Dies ist möglich, weil JavaScripts einen der ursprünglichen Werte, aus denen der logische Ausdruck besteht, übergeben bzw. zurückgeben, wobei der Wert vom Typ des Operators abhängt. Bestimmte andere Sprachen, wie PHP, geben das tatsächliche Ergebnis der Operation weiter, d.h. wahr oder falsch, was bedeutet, dass das Ergebnis immer wahr oder falsch ist; z.B:
14 && 0 /// results as 0, not false
14 || 0 /// results as 14, not true
1 && 2 && 3 && 4 /// results as 4, not true
true && '' /// results as ''
{} || '0' /// results as {}
Ein wesentlicher Vorteil gegenüber einer normalen if-Anweisung ist, dass die ersten beiden Methoden auf der rechten Seite eines Arguments operieren können, d.h. als Teil einer Zuweisung.
d = (a && b) || c;
d = a ? b : c;
if `a == true` then `d = b` else `d = c`
Die einzige Möglichkeit, dies mit einer Standard-if-Anweisung zu erreichen, wäre, die Zuordnung zu duplizieren:
if ( a ) { d = b } else { d = c }
Sie fragen sich vielleicht, warum Sie nur Logische Operatoren anstelle der Ternärer Operator In einfachen Fällen würden Sie das wahrscheinlich nicht tun, es sei denn, Sie wollten sicherstellen, dass a
と b
waren beide wahr. Mit den logischen Operatoren lassen sich auch komplexere Bedingungen erreichen, die mit verschachtelten ternären Operationen ziemlich unübersichtlich werden können... aber wenn man möchte, dass der Code leicht lesbar ist, ist beides nicht wirklich so intuitiv.
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.