Heim >Web-Frontend >js-Tutorial >Ausführliche Erläuterung der Operatordefinition und -verwendung im JavaScript-Grundkurs

Ausführliche Erläuterung der Operatordefinition und -verwendung im JavaScript-Grundkurs

伊谢尔伦
伊谢尔伦Original
2017-07-19 10:07:361274Durchsuche

Operatoren werden in JavaScript für Tabellenausdrücke, Vergleichsausdrücke, logische Ausdrücke, Zuweisungsausdrücke usw. verwendet.
Es ist zu beachten, dass die meisten Operatoren durch Satzzeichen dargestellt werden, z. B. „delete“ und „instanceof“. Ob es sich um einen Operator oder einen symbolischen Operator handelt, die dargestellten Operatoren sind alle reguläre Operatoren und ihre Syntax ist sehr prägnant und umfassend.
Sortiert nach der Priorität der tiefgestellten Operatoren ist die Priorität des vorherigen Operators höher als die Priorität des späteren Operators. Durch horizontale Skalare getrennte Operatoren haben unterschiedliche Priorität.
A repräsentiert die Assoziativität des Operators.
L von links nach rechts oder R (von rechts nach links)
Die Liste der Kopfzeile N gibt die Anzahl der Operanden an.
Typ gibt den Typ der erwarteten Operanden und den Ergebnistyp des Operators an (nach dem „→“-Symbol)

i Die Anzahl der Operanden

Der Operator kann bedient werden Klassifizieren Sie die Anzahl der Zahlen.

Die meisten Operatoren in JavaScript sind binäre Operatoren, die zwei Ausdrücke zu einem etwas komplexeren Ausdruck kombinieren.
Javascript unterstützt auch einige unäre Operatoren, die einen Ausdruck in einen anderen, etwas komplexeren Ausdruck umwandeln. Der „-“-Operator im Ausdruck -x ist ein unärer Operator. ist, den negativen Wert von x anzunehmen.
Javascript unterstützt einen ternären Operator: den bedingten Beurteilungsoperator „?:“, der drei Ausdrücke zu einem Ausdruck kombiniert

ii Operandentyp und Ergebnistyp

Einige Operatoren können mit verwendet werden Es wird jedoch erwartet, dass sie mit Daten eines bestimmten Typs arbeiten.

iii. lvalue

Der Zuweisungsoperator und einige andere Operatoren in der Tabelle erwarten, dass ihre Operanden vom Typ lval sind, wobei lvalue ein veralteter Begriff ist. Das bedeutet: „Ein Ausdruck kann nur auf der linken Seite eines Zuweisungsoperators erscheinen.“ In JavaScript sind Variablen, Objekteigenschaften und Array-Elemente allesamt L-Werte. Die ECMAScript-Spezifikation ermöglicht es integrierten Funktionen mit Gültigkeitsbereich, einen L-Wert zurückzugeben, definierte Funktionen hingegen nicht.

iiii. Priorität der Operatoren

In der obigen Tabelle sind die angezeigten Operatoren von hoch nach niedrig nach Priorität geordnet, wobei eine Gruppe von Operatoren innerhalb jeder horizontalen Trennlinie die gleiche Priorität hat. Die Operatorpriorität steuert die Reihenfolge, in der Operatoren ausgeführt werden. Operatoren mit höherer Priorität (oben in der Tabelle) werden immer vor Operatoren mit niedrigerer Priorität (unten in der Tabelle) ausgeführt.

Sehen Sie sich den folgenden Ausdruck an

w=x+y*z;
Der Multiplikationsoperator „*“ hat eine höhere Priorität als die Addition „+“, daher wird die Multiplikation ausgeführt Erste. Dann hat der Zuweisungsoperator „=“ die niedrigste Priorität. Daher wird die Zuweisungsoperation ausgeführt, nachdem der Ausdruck auf der rechten Seite ausgewertet wurde. Die Priorität des

-Operators kann mithilfe von Klammern angegeben werden. Der obige Ausdruck kann wie folgt geschrieben werden.

w = (x + y) * z;
Es ist zu beachten, dass die Priorität von Attributzugriffsausdrücken und Aufrufausdrücken höher ist als die aller Operatoren in der Tabelle.

typeof my.Function[x](y)
Obwohl typeof einer der Operatoren mit der höchsten Priorität ist, wird typeof auch nach zwei Eigenschaftszugriffen und Funktionsaufrufen ausgeführt.

Wenn Sie sich tatsächlich nicht sicher sind, welche Priorität die von Ihnen verwendeten Operatoren haben, ist es am einfachsten, Klammern zu verwenden, um die Reihenfolge der Operationen zu erzwingen. Es sind einige wichtige Regeln zu beachten: Multiplikation und Division sind höher als Addition und Subtraktion, und Zuweisungsoperationen haben eine sehr niedrige Priorität und werden normalerweise zuletzt ausgeführt.

iiiiii. Assoziativität von Operatoren

In der Tabelle in diesem Abschnitt veranschaulicht die Spalte mit dem Titel A die Nodulation von Operatoren. L bedeutet von links nach rechts kombinieren, R bedeutet von rechts nach links kombinieren. Tuberculity gibt die Reihenfolge der Operationen in mehreren Operatorausdrücken mit derselben Priorität an.

Zum Beispiel werden Subtraktionsoperationen assoziativ von links nach rechts ausgeführt.

w = x - y - z

ist dasselbe wie dieser Code:

w = ((x - y) - z)

Umgekehrt ist der folgende Ausdruck:

x = ~-y;
w = x = y = z;
q=a?b:c?d:e?f:g;

genau dasselbe wie dieser Code

x=~(-y);
w=(x=(y=z));
q=a?b:(c?d:(e?f:g))

Weil unäre Operatoren, Zuweisungen und ternäre bedingte Operatoren alle von rechts nach links assoziativ sind.

iiiiiii. Reihenfolge der Operationen

Die Priorität und Assoziativität der Operatoren geben ihre Reihenfolge im Zuweisungsausdruck an, geben jedoch nicht die Operation während der Berechnung des Literalausdrucks an. JavaScript berechnet Ausdrücke immer streng von links nach rechts, zum Beispiel:

Im Ausdruck w=x+y*z wird zuerst der Ausdruck w berechnet und dann werden x, y und z berechnet , wird der Wert von y mit dem Wert von z multipliziert und der Wert von x addiert. Schließlich die Variable oder das Attribut, auf das der Ausdruck w zeigt. Durch das Hinzufügen von Klammern zu einem Ausdruck ändert sich die Beziehung zwischen Multiplikations-, Additions- und Zuweisungsoperationen. Aber die Reihenfolge von links nach rechts wird sich nicht ändern.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Operatordefinition und -verwendung im JavaScript-Grundkurs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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