Ich mache kleine Dienstprogramm, um JavaScript-Block mit C# zu kompilieren. Ich versuche den Ausführungsfluss des ternären Operators zu verstehen. Nun, wenn ich laufe ein Javascript mit Chrome oder Firefox:Javascript ternärer Operator Ergebnis
var k = 27;
var o = 78;
var a = k < 100 ? o+=2 > 11 ? "T" : "F" : o < 100 ? "J" : "P";
alert(a);
Es sollte mich "T" oder "F" wenn "o + = 2" geben führen false zurückgibt. Aber statt dieser gibt es "78F" zurück. Kann mir bitte jemand erklären, was die Logik dahinter ist.
ich würde Verschachtelung ternäre Operatoren empfehlen. Während es immer schön ist, einen Einzeiler zu haben, ist es für andere Entwickler viel einfacher zu verstehen, wenn Sie dies in if-else-Anweisungen aufteilen. Ich musste einmal an einer Anwendung mit bis zu 6 verschachtelten ternären Teilen arbeiten.Es war ein Biest zum Debuggen. – HockeyJ
verwenden Sie bitte Klammern '(' und ')', um Ausdrücke zu unterscheiden und es für jedermanns Augen zu erleichtern. Es wird höchstwahrscheinlich auch das gewünschte Ergebnis liefern. – Aukhan
Nester ist eine schreckliche Idee .. – rlemon