Heim  >  Artikel  >  Web-Frontend  >  Verschiedene Techniken zur Verwendung der ternären JavaScript-Techniken „operator_javascript“.

Verschiedene Techniken zur Verwendung der ternären JavaScript-Techniken „operator_javascript“.

WBOY
WBOYOriginal
2016-05-16 16:03:421346Durchsuche

Ich finde, wenn ich zu viel Code schreibe, ersetze ich ihn unbewusst durch Ternär. Das macht den Code nur prägnanter und prägnanter. Natürlich sagen einige Leute, dass die Verwendung von Ternär zu einem Höhepunkt führen kann. Ich habe mich kürzlich auch so gefühlt, als ich js geschrieben habe, und ich habe einige Tipps zum Teilen gesammelt.

Big Bird, bitte überspringen Sie den folgenden Absatz. Big Bird kann Ihnen bei der Korrektur helfen ^__^

====Beliebte Linie====

Ausdruck (expr1) ? (expr2) : (expr3)

Der Wert ist expr2, wenn expr1 als TRUE ausgewertet wird, und der Wert ist expr3, wenn expr1 als FALSE ausgewertet wird.

============

Allgemeine Verwendung

Wenn Sie feststellen, dass Sie häufig if else verwenden

Code kopieren Der Code lautet wie folgt:

if(Danke, Bruder Chun || Danke, Prüfungskaiser){
Scheitern Sie nicht;
}else{
Türaufhängung;
}

Dann ist die Darstellung des Ternärs
Code kopieren Der Code lautet wie folgt:

Anbetung von Bruder Chun ||. Anbetung des Prüfungskaisers? Die Prüfung nicht bestehen: Menmenhang

Es ist sehr cool, viel aufschlussreichen Code zu finden.

Im täglichen Leben gibt es oft solche Wenn-Sonst-Urteile, insbesondere wenn es viele Verschachtelungen gibt. Die Verwendung von Ternary ist harmonischer, wodurch Ihr Code erfrischender aussieht und eine klare Struktur aufweist.

Etwas intelligentere Nutzung
Durch ständige Änderungen können viele Verwendungen von Ternär abgeleitet werden. Der folgende JQuery-Code

Code kopieren Der Code lautet wie folgt:

Flag ? $('body').addClass('hover') : $('body').removeClass('hover') ;

Noch perverser.
Code kopieren Der Code lautet wie folgt:

$('.item')[ flag ? 'addClass' : 'removeClass']('hover')

Der obige Code sieht verwirrend aus. Denn wenn Flag = true ist, wird der Code zum folgenden Code:
Code kopieren Der Code lautet wie folgt:

$('.item')['addClass']('hover')

Diese Schreibweise entspricht.
Code kopieren Der Code lautet wie folgt:

$('.item').addClass('hover')

Aktualisieren Sie es erneut

Sie können die gewünschten Funktionen nach Bedarf aufrufen, um weitere Aufgaben zu erledigen.

Code kopieren Der Code lautet wie folgt:

Funktion a(){
etwas tun
}
Funktion b(){
etwas tun
}

Flagge ? a() : b();

Dann der komplette Körper des Lehrers

Es gibt also so einen Fall, zwei Knöpfe, einen für Vorwärtsverhalten und einen für Rückwärtsverhalten. Die Bedienfunktionen sind nahezu gleich.

Code kopieren Der Code lautet wie folgt:

var action_turn = function(e, type){
        var self = $(e).closest('li');
        var target = self[type === 'prev' ? 'prev' : 'next']();
          target.addClass('has-img');
          self.removeClass('has-img')
}

var btn_next = $('#item-photo-panel a.next')
btn_next.click(function(){
        action_turn(this, 'next');
         return false;
});
var btn_prev = $('#item-photo-panel a.prev')
btn_prev.click(function(){
        action_turn(this, 'prev');
         return false;
});


Dinge, die Sie vermeiden sollten
Code kopieren Der Code lautet wie folgt:

alarm( true ? 'true' : false ? 't' : 'f' )

Was ich meine, ist, zu versuchen, das verschachtelte Ternärsystem wie oben zu vermeiden, da in js die Anweisungen von rechts nach links erfolgen und der obige Code äquivalent zu
ist
Code kopieren Der Code lautet wie folgt:

alarm( true ? 'true' : ( false ? 't' : 'f' ) )

In PHP ist das Ergebnis beispielsweise völlig anders. Bei der Verschachtelung von drei Elementen erhält das linke Element den Vorrang.
Code kopieren Der Code lautet wie folgt:

echo (( true ? 'true' : false ) ? 't' : 'f' ) //php

Tipp:
Außerdem habe ich festgestellt, dass das Ternär in PHP eine solche Eingabeaufforderung hat

Hinweis: Beachten Sie, dass der ternäre Operator eine Anweisung ist, sodass seine Auswertung keine Variable, sondern das Ergebnis der Anweisung ist. Dies ist wichtig, wenn Sie eine Variable per Referenz zurückgeben möchten. Die Anweisung return $var == 42 ? $a : $b; in einer Funktion, die per Referenz zurückgibt, wird nicht funktionieren und eine zukünftige Version von PHP wird eine Warnung darüber ausgeben.

Nach dem Testen habe ich jedoch festgestellt, dass der obige Ansatz in Javascript funktionieren kann. Dies liegt wahrscheinlich daran, dass js im Vergleich zu PHP nicht so streng ist wie BT.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn