Heute habe ich ein Stück Yui -Kompressor -komprimierter JS -Code gesehen:
userernum && (ind += index, ind> = userernum && (ind -= userernum), ind <0 && (ind === -2 && (ind = -1), ind += userernum), selli.removeclass ("on"), $ (selli [ind]). addClas ("on");
Ich wurde verrückt und wahrscheinlich konnten nur wenige Leute alles auf einmal verstehen. Dann "übersetzen" ihn.
&& (logistisch und)
Hier ist hauptsächlich eine "&&" -Operation. Zunächst müssen Sie dies verstehen und ein einfaches Beispiel sehen:
1 var a = 1 && 2 && 3; // 3
2 var b = 0 && 1 && 2; // 0
3 var c = 1 && 0 && 2; // 0
4 Alarm (A), Alarm (B), Alarm (c);
Hehe, die Schreibmethode ist sehr seltsam, das Ergebnis des Laufens beträgt 3, 0, 0. Im Allgemeinen verwenden wir sie oft in Anweisungen. Die "&&" (logische und) Operation ist wirklich das Gegenteil von "||" Betrieb. Die "&&" -Operation kehrt zurück, wenn sie auf falsche Weise trifft.
Zum Beispiel: A && b, wenn a wahr ist, geben Sie direkt B zurück, unabhängig davon, ob b wahr oder falsch ist. Wenn a falsch ist, geben Sie einen direkt zurück. Im obigen Beispiel ist der erste var a = 1 && 2 && 3; weil 1 && 2, 1 wahr ist, return 2; 2 && 3, 2 ist wahr, Rückkehr 3.
Nachdem Sie die "&&" -Operation verstanden haben, schauen Sie sich den Yui -Kompressor -Kompressor -JS -Code in der oberen Oberfläche an und übersetzen Sie ihn:
if (userernum) {ind += index; if (ind> = userernum) {ind- = userernum;} if (ind <0) {if (ind === -2) {ind = -1;} ind += userernum;} selli.removeclass ("on"); }Um mich zu schämen, bin ich alt und habe eine halbe Stunde lang "übersetzt", aber nur mit Hilfe meiner Kollegen ist die "Übersetzung" korrekt.
|| (logisch oder)
Werfen wir einen Blick auf das "||" (logische oder) Operation und sehen Sie sich das Beispiel an:
1 var a = 0 || 1 || 2; // 1
2 var b = 1 || 0 || 3; // 1
3 Alarm (a), Alarm (b);
Das "||" Die Operation kehrt zurück, wenn sie auf True trifft. Zum Beispiel: a || B, wenn a falsch ist, kehren Sie direkt B zurück, unabhängig davon, ob B wahr oder falsch ist. Wenn A wahr ist, wird es direkt zurückgegeben und werden nicht weiter ausgeführt.
&& (logisch und) und || (logisch oder) sollte auf ihre Priorität beachtet werden:
&& (Logik &) Priorität ist höher als || (Logik oder)
Return a && b || C ,
Wir können den Rückgabewert basierend auf a beurteilen. Wenn a falsch ist, wird es definitiv C zurückkehren; Wenn B und C beide wahr sind, können wir entscheiden, ob B oder C auf A. Wenn a falsch ist, wird C zurückgegeben. Wenn a wahr ist, wird es zurückgegeben.
Return a || B && c
Gemäß der Priorität wird B && C zuerst berechnet, und dann ist a oder mit a; Wenn a wahr ist, gibt es a zurück, ob es B oder C ist, wenn a falsch ist. Wenn B falsch ist, gibt es B zurück, und wenn B wahr ist, gibt es C zurück;
1 var a = 3 && 0 || 2; // 2
3 var b = 3 || 0 && 2; // 3
5 var c = 0 || 2 && 3; // 3
6 Alarm (a), Alarm (b), Alarm (c);
Ebenfalls beigefügt: JS -Operator Priorität (von hoch nach niedrig aufgeführt)
| Betreiber | beschreiben |
| . [] ()) | Feldzugriff, Array -Index, Funktionsaufrufe und Expressionsgruppierung |
| ++ - - ~! Neue Type der Leere löschen | Unary Operator, Rückgabe Datentyp, Objekterstellung, undefinierter Wert |
| */ % | Multiplikation, Abteilung, Schimmelpilzrexion |
| + - + | Addition, Subtraktion, String -Verkettung |
| << >> >>>> | Schicht |
| <= >> = Instanzof | weniger als, weniger oder gleich, größer als, größer als oder gleich, Instanz |
| ==! = ===! == | Gleich, nicht gleich, streng gleich, nicht streng gleich |
| & | bitweise und |
| ^ | bitweise xor |
| | | bitweise oder |
| && | Logik und |
| || | Logisch oder |
| ?: | Zustand |
| = op = | Zuordnung, Betriebszuweisung |
| Anwesend | Mehrfachbewertung |
Der obige Artikel erörtert kurz JS -Operatoren && und || Und ihre Prioritäten sind alle Inhalte, die ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.