javascript die Kurzform if-Anweisung ohne else-Teil
So, ich bin mit einem Kürzel javascript if
/else
Aussage (ich habe irgendwo gelesen, nennt man Sie Ternären Aussagen?)
this.dragHandle.hasClass('handle-low') ? direction = "left" : direction = "right"
Diese funktioniert Super, aber was ist, wenn ich später verwenden wollen, einfach ein Kürzel if
ohne else
Teil. Wie:
direction == "right" ? slideOffset += $(".range-slide").width()
ist dies überhaupt möglich?
InformationsquelleAutor der Frage ahren | 2012-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie
&&
Betreiber - zweite operand expression wird nur dann ausgeführt, wenn der erste true istmeiner Meinung nach
if(conditon) expression
ist mehr lesbar alscondition && expression
InformationsquelleAutor der Antwort Andrey Sidorov
Glaube nicht, dass es sich wie ein control-block (sprich: eine if-else-oder switch).
Es ist nicht wirklich gedacht für das ausführen von code innerhalb der it.
Können Sie. Es wird nur sehr hässlich, sehr schnell, die Niederlagen der Zweck.
Was Sie wirklich wollen, es zu benutzen, ist ZUWEISEN von WERTEN.
Unter Ihrem ersten Beispiel und drehen es auf den Kopf ein wenig, erhalten Sie:
Sehen. Was ich jetzt getan habe ist, ich habe etwas genommen, was erforderlich wäre eine if/else oder switch, die verwendet worden wären zuweisen, dass ein Wert, und ich habe gereinigt es nett und hübsch.
Können Sie auch ein anderes-wenn der Typ des ternären:
Können Sie es auch verwenden, um Feuer-Codes, wenn Sie möchten, aber es wird wirklich schwierig, nach einer Weile, um zu wissen, was wo ist (siehe das Vorherige Beispiel, um zu sehen, wie auch die Zuweisung kann mit der Suche beginnen seltsam auf einen Blick)...
...dies wird in der Regel Arbeit.
Aber es ist auch nicht wirklich schöner oder mehr hilfreich als eine, wenn, oder eine Verzweigung, sofort-aufrufen-Funktion (und nicht JS-Programmierer, oder ungeübte JS-Programmierer gehen, um Mist selbst versuchen, pflegen Sie Ihre code).
InformationsquelleAutor der Antwort Norguard
Nein, es ist nicht möglich, weil ternäre operator benötigt drei Operanden.
InformationsquelleAutor der Antwort Yograj Gupta
Was Sie haben, wird nicht funktionieren, aber warum nicht einfach eine einzeilige if-Anweisung, statt.
if(direction == "right") slideOffset += $(".range-slide").width();
Diese beinhaltet weniger eingeben als die Methode Ray vorgeschlagen. Natürlich, seine Antwort gültig ist, wenn Sie wirklich wollen, zu bleiben, um das format.
InformationsquelleAutor der Antwort twiz
Den Bedingungsoperator ist nicht ein Kürzel für die
if
- Anweisung. Es ist ein operator, keine Aussage.Wenn Sie es verwenden, sollten Sie es verwenden, als Betreiber, nicht als Aussage.
Nur mit einem null Wert für den Dritten Operanden:
InformationsquelleAutor der Antwort Guffa
Diese nicht genau Ihre Frage beantworten, aber ternaries erlauben, Ihnen zu schreiben, weniger, als Sie gezeigt haben:
Und jetzt, wo ich darüber nachdenke, ja, Sie tun können, Ihre Frage zu:
Dies ist eine Theorie. Ich das nächste mal die Gelegenheit haben, zu
+=
eine ternäre ich werde versuchen, diese. Lassen Sie mich wissen, wie es funktioniert!InformationsquelleAutor der Antwort Dale