Vorrang des Operators in JavaScript. JavaScript: Operatoren Inkrementieren und Dekrementieren von Operatoren

Mathematische Operationen sind einige der grundlegendsten und vielseitigsten Funktionen jeder Programmiersprache. In JavaScript werden Zahlen häufig für allgemeine Aufgaben verwendet, z. B. für die Größe eines Browserfensters, die Berechnung des Endpreises einer Geldtransaktion oder den Abstand zwischen Elementen in einem Site-Dokument.

Sie müssen keine hohen mathematischen Fähigkeiten haben, um ein guter Entwickler zu sein. Es ist jedoch wichtig zu wissen, welche Arten von Operationen in JavaScript verfügbar sind und wie Sie sie zur Ausführung praktischer Aufgaben verwenden können.

Im Gegensatz zu anderen Programmiersprachen hat JavaScript nur einen numerischen Datentyp. Ganzzahlen und Gleitkommazahlen werden nicht getrennt.

In diesem Lernprogramm werden arithmetische Operatoren, Zuweisungsoperatoren und die Reihenfolge der Operationen mit numerischen JavaScript-Daten behandelt.

Rechenzeichen

Arithmetische Operatoren sind Symbole, die mathematische Operationen definieren und ein Ergebnis zurückgeben. In 3 + 7 \u003d 10 definiert das Zeichen + beispielsweise die Syntax für die Additionsoperation.

Viele JavaScript-Operatoren sind Ihnen aus der Mathematik bekannt, aber es gibt auch einige zusätzliche Operatoren.

Alle JavaScript-Arithmetikoperatoren sind in der folgenden Tabelle aufgeführt.

Operator Syntax Beispiel Definition
Zusatz + x + y Summe von x und y
Subtraktion x - y Unterschied zwischen x und y
Multiplikation * x * y Ableitung von x und y
Aufteilung / x / y Privat x und y
Modul % x% y Rest x / y
Potenzierung ** x ** y x hoch y
Zuwachs ++ x ++ x plus eins
Dekrement x— x minus eins

Addition und Subtraktion

Die Additions- und Subtraktionsoperatoren sind in JavaScript verfügbar und können verwendet werden, um die Summe und Differenz numerischer Werte zu ermitteln. JavaScript verfügt über einen integrierten Taschenrechner und mathematische Operationen können direkt in der Konsole ausgeführt werden.

Mit dem Pluszeichen können Sie beispielsweise Zahlen hinzufügen:

Mit JavaScript können Sie nicht nur Primzahlen bearbeiten, sondern auch Variablen Zahlen zuweisen und Berechnungen an ihnen durchführen. Sie können beispielsweise den Variablen x und y numerische Werte zuweisen und das Ergebnis in z platzieren.

// Weise x und y Werte zu
sei x \u003d 10;
sei y \u003d 20;
// Addiere x und y und ordne die Summe z zu
sei z \u003d x + y;
console.log (z);
30

// Weise x und y Werte zu
sei x \u003d 10;
sei y \u003d 20;
// Subtrahiere x von y und ordne die Differenz z zu
sei z \u003d y - x;
console.log (z);
10

// Weise x und y Werte zu
sei x \u003d -5,2;
sei y \u003d 2,5;
// Subtrahiere y von x und ordne die Differenz z zu
sei z \u003d x - y;
console.log (z);
-7.7

Eine interessante Funktion in JavaScript, die Sie beachten und kennen sollten, ist das Ergebnis des Hinzufügens einer Zahl und einer Zeichenfolge. Wir wissen, dass 1 + 1 gleich 2 sein sollte, aber diese Gleichung liefert unerwartete Ergebnisse.

sei x \u003d 1 + "1";
console.log (x);
Typ von x;
11
"string"

Anstatt Zahlen hinzuzufügen, konvertiert JavaScript den gesamten Ausdruck in Zeichenfolgen und verkettet diese. Es ist wichtig, bei der dynamischen Eingabe von JavaScript vorsichtig zu sein, da dies zu unerwünschten Ergebnissen führen kann.

Addition und Subtraktion in JavaScript werden häufig zum Scrollen der Navigationsleiste verwendet.

funktion scrollToId () (
const navHeight \u003d 60;
window.scrollTo (0, window.pageYOffset - navHeight);
}
window.addEventListener ("hashchange", scrollToId);

In diesem Fall scrollt das Bedienfeld 60 Pixel von der ID.

Multiplikation und Division

JavaScript-Multiplikations- und Divisionsoperatoren werden verwendet, um die Ableitung und den Quotienten numerischer Werte zu ermitteln.

Das Sternchen ist der Multiplikationsoperator.

// Weise x und y Werte zu
sei x \u003d 20;
sei y \u003d 5;
// Multipliziere x mit y, um das Produkt zu erhalten
sei z \u003d x * y;
console.log (z);
100

Die Multiplikation kann verwendet werden, um den Preis eines Artikels nach Einführung der Umsatzsteuer zu berechnen.

konstanter Preis \u003d 26,5; // Preis des Artikels vor Steuern
const taxRate \u003d 0.082; // 8,2% Steuersatz
// Berechne die Summe nach Steuern auf zwei Dezimalstellen
let totalPrice \u003d price + (price * taxRate);
totalPrice.toFixed (2);
console.log ("Total:", totalPrice);
Gesamt: 28,67

Slash ist der Divisionsoperator.

// Weise x und y Werte zu
sei x \u003d 20;
sei y \u003d 5;
// Teile y in x, um den Quotienten zu erhalten
sei z \u003d x / y;
console.log (z);
4

Die Unterteilung ist besonders nützlich bei der Berechnung der Zeit, z. B. bei der Berechnung der Anzahl der Stunden oder des Prozentsatzes der richtigen Antworten in einem Test.

Der absolute Wert einer Zahl

Das Modul ist ein weiterer arithmetischer Operator, der weniger beliebt ist als die vorherigen. Dargestellt durch das% -Symbol. Der Rest wird zurückgegeben, wenn die erste Zahl durch die zweite geteilt wird.

Zum Beispiel wissen wir, dass 9 ohne Rest durch 3 teilbar ist:

Mit dem Zahlenmodul können Sie eine gerade oder ungerade Zahl definieren, zum Beispiel:

// Funktion initialisieren, um zu testen, ob eine Zahl gerade ist
const isEven \u003d x \u003d\u003e (
// Wenn der Rest nach dem Teilen durch zwei 0 ist, geben Sie true zurück
if (x% 2 \u003d\u003d\u003d 0) (
return true;
}
// Wenn die Zahl ungerade ist, geben Sie false zurück
falsch zurückgeben;
}
// Teste die Nummer
isEven (12);
wahr

In diesem Beispiel ist 12 durch 2 teilbar, dies ist also eine gerade Zahl.

Bei der Programmierung wird die Zahleneinheit häufig in Verbindung mit bedingten Anweisungen verwendet.

Potenzierung

Exponentiation ist einer der neuesten JavaScript-Operatoren. Die Syntax für die Exponentiation besteht aus zwei aufeinanderfolgenden Sternchen (**).

Zum Beispiel wird 10 nach der fünften Potenz (10 ^ 5) wie folgt geschrieben:

10 ** 5;
100000

Operation 10 ** 5 hat das gleiche Ergebnis wie 10 * 10, das 5 Mal wiederholt wird.

10 * 10 * 10 * 10 * 10;

Sie können diese Operation auch mit der Math.pow () -Methode schreiben.

Math.pow (10, 5);
100000

Die Verwendung des Exponentiationsoperators ist eine schnelle Möglichkeit, den Exponenten einer bestimmten Zahl zu bestimmen. Wie üblich ist es jedoch bei der Auswahl zwischen Methode und Operator wichtig, konsistent zu sein und Code im gleichen Stil zu schreiben.

Inkrementieren und Dekrementieren

Die Inkrement- und Dekrementoperatoren erhöhen oder verringern den numerischen Wert einer Variablen um eins. Sie werden durch zwei Pluspunkte (++) oder zwei Minuspunkte (-) dargestellt und häufig in Schleifen verwendet.

Hinweis: Die Inkrement- und Dekrementoperatoren können nur mit Variablen verwendet werden. Der Versuch, sie mit Primzahlen zu verwenden, führt zu einem Fehler.

7++
Nicht erfasster ReferenceError: Ungültiger Ausdruck auf der linken Seite im Postfix-Vorgang

Die Inkrement- und Dekrementoperatoren können in Abhängigkeit von der Position des Operators in Bezug auf die Variable in Präfix- und Postfixoperationen klassifiziert werden.

Das Präfixinkrement wird als ++ x geschrieben.

// Setze eine Variable
sei x \u003d 7;

let prefix \u003d ++ x;
console.log (Präfix);
8

Der Wert von x wurde um 1 erhöht. Das Postfix-Inkrement wird als y ++ geschrieben.

// Setze eine Variable
sei y \u003d 7;
// Verwenden Sie die Präfix-Inkrement-Operation
lass postfix \u003d y ++;
console.log (postfix);
7

Die Postfix-Operation hat den Wert nicht erhöht. Dieser Wert erhöht sich erst, wenn der Ausdruck ausgewertet wird. Dazu müssen Sie den Vorgang zweimal ausführen:

sei y \u003d 7;
y ++;
y ++;
console.log (y);
8

Diese Operatoren werden am häufigsten in Schleifen gefunden. In dieser for-Schleife wird die Anweisung zehnmal ausgeführt, beginnend bei 0.

// Zehnmal eine Schleife ausführen
für (sei i \u003d 0; i< 10; i++) {
console.log (i);
}
0
1
2
3
4
5
6
7
8
9

In diesem Beispiel wird die Schleife mit dem Inkrementoperator iteriert.

Einfach ausgedrückt kann x ++ als Abkürzung für x \u003d x + 1 und x als Abkürzung für x \u003d x - 1 betrachtet werden.

Zuweisungsoperatoren

Einer der am häufigsten verwendeten Operatoren ist der Zuweisungsoperator, der bereits in diesem Lernprogramm beschrieben wurde. Es wird durch ein Gleichheitszeichen (\u003d) dargestellt. Das Symbol \u003d wird verwendet, um einer Variablen links einen Wert rechts zuzuweisen.

// Weisen Sie der Altersvariablen 27 zu
lass Alter \u003d 27;

Zusätzlich zum Standardzuweisungsoperator verfügt JavaScript über zusammengesetzte Zuweisungsoperatoren, die den arithmetischen Operator mit dem Operator \u003d kombinieren.

Beispielsweise beginnt die add-Anweisung mit dem ursprünglichen Wert und fügt einen neuen Wert hinzu.

// Weisen Sie der Altersvariablen 27 zu
lass Alter \u003d 27;
Alter + \u003d 3;
console.log (Alter);
30

Grundsätzlich ist Alter + \u003d 3 dasselbe wie Alter \u003d Alter + 3.

Alle arithmetischen Operatoren können mit dem Zuweisungsoperator kombiniert werden. Unten finden Sie eine Referenztabelle der Zuweisungsoperatoren in JavaScript.

Zusammengesetzte Zuweisungsoperatoren werden häufig in Schleifen wie Inkrementen und Dekrementen verwendet.

Bedienerpriorität

Operatoren werden wie in der normalen Mathematik in der Rangfolge ausgeführt.

Beispielsweise hat die Multiplikation Vorrang vor der Addition.

// Zuerst 3 mit 5 multiplizieren, dann 10 addieren
10 + 3 * 5;
25

Wenn Sie zuerst eine Additionsoperation ausführen müssen, schließen Sie sie in Klammern ein - solche Operationen haben immer die höchste Priorität.

// Zuerst 10 und 3 addieren, dann mit 5 multiplizieren
(10 + 3) * 5;
65

Unten finden Sie eine Rangliste der arithmetischen Operatoren in JavaScript. Beim Inkrementieren und Dekrementieren hat Postfix Vorrang vor Präfix.

Inkrement / Dekrement, Multiplikation / Division und Addition / Subtraktion haben die gleiche Prioritätsstufe.

Vorrang haben nicht nur arithmetische Operatoren, sondern auch Zuweisungsoperatoren, logische Operatoren, bedingte Operatoren usw. Die vollständige Liste kann angezeigt werden.

Stichworte:

Die JavaScript-Sprache unterstützt die Prinzipien der objektorientierten Programmierung. Alle Objekte, die Sie bei der Arbeit treffen können, können in drei große Gruppen unterteilt werden:

1. Eingebaute Sprachobjekte. Diese Objekte können mit bestimmten Datentypen arbeiten oder allgemeine Aufgaben ausführen (z. B. Math-, String-, Date-Objekte usw.). Vor der Verwendung von integrierten Objekten ist es häufig erforderlich, eine geeignete Instanz dieses Objekts zu erstellen (außer in Mathematik).

2. Externe Standardobjekte. Entwickelt für die Interaktion mit Standardoberflächenelementen und Browserfunktionen. Dies sind Objekte wie Fenster, Dokument und Ereignis. Alle externen Objekte sind an einer beliebigen Stelle im Skript verfügbar und erfordern keine Instanziierung.

3. Benutzerdefinierte Objekte. Erstellt vom Entwickler für bestimmte Anforderungen. Das Erstellen eigener Objekte erfordert bestimmte Fähigkeiten und Entwicklungserfahrungen.

Jedes Objekt enthält Eigenschaften und Methoden. Eine Objekteigenschaft ist eine Art quantitativer oder qualitativer Parameter, der die Eigenschaften eines Objekts bestimmt. Eine Objektmethode legt eine Aktion fest, die ein bestimmtes Objekt ausführen kann. Wenn wir die Programmierung ignorieren und einen gewöhnlichen Menschen als Objekt betrachten, sind seine Eigenschaften "Größe", "Gewicht", "Augenfarbe" und die Methoden "Essen", "Trinken", "Gehen" usw.

Sie können auf eine Eigenschaft oder Methode verweisen, indem Sie deren Namen und Objektinstanz angeben:

object.property

object.method ()

Mit dieser Notation (über einen Zeitraum) können Sie eine Instanz eines Objekts eindeutig identifizieren, dessen Eigenschaften und Methoden Sie verwenden möchten. In der Praxis werden Eigenschaften wie reguläre Variablen und Methoden wie reguläre Funktionen verwendet. Beachten Sie, dass der Methodenname immer in Klammern enden muss, auch wenn Sie keine Parameter an die Methode übergeben. Beispielsweise:

// Der Interpreter ruft die open () METHODE auf

// Dolmetscher sucht nach EIGENTUM offen,

// wird es nicht finden und einen Fehler auslösen

8. Spezielle Operatoren in JavaScript.

?: Ermöglicht Ihnen ein einfaches "wenn ... dann ... sonst"

Wertet zwei Ausdrücke aus und gibt das Ergebnis des zweiten Ausdrucks zurück.

löschen Ermöglicht das Löschen einer Objekteigenschaft oder eines Elements an einem bestimmten Index in einem Array.

new Ermöglicht das Erstellen eines Beispiels für einen benutzerdefinierten Objekttyp oder einen der integrierten Objekttypen.

this Ein Schlüsselwort, mit dem Sie auf das aktuelle Objekt verweisen können.

typeof Gibt eine Zeichenfolge zurück, die den Typ des nicht bewerteten Operanden angibt.

void Der void-Operator definiert einen Ausdruck, der ausgewertet wird, ohne einen Wert zurückzugeben.

9. Operatorprioritäten in JavaScript.

Dienstalter des Betreibers

Die Vorrangstellung für Operationen ist die Reihenfolge, in der Operationen in komplexen Ausdrücken ausgeführt werden. Betriebe auf gleicher Ebene haben das gleiche Dienstalter. Berechnungen werden für alle binären Operationen von links nach rechts durchgeführt, beginnend mit den oben in der Liste aufgeführten Operationen und endend mit den Operationen unten.

Das Dienstalter der Betreiber vom niedrigsten zum höchsten ist wie folgt:

Zuordnung \u003d + \u003d - \u003d * \u003d / \u003d% \u003d<<=>>=>>>=&=^=|=

Bedingte Auswahl? ::

Logisches ODER ||

Boolesches UND &&

Bitweises ODER |

Bitweise exklusiv ^

Bitweises UND &

Ungleichung! \u003d

Gleichheit / Ungleichheit \u003d\u003d! \u003d

Vergleich<<=>> =

Bitverschiebung<< >> >>>

Addition / Subtraktion + -

Multiplizieren / dividieren * /%

Negation / Komplement / unäres Minus / Inkrement / Dekrement! ~ - ++ -

Aufruf, Übergabe von Parametern ().

Dienstalter des Betreibers

Die Vorrangstellung für Operationen ist die Reihenfolge, in der Operationen in komplexen Ausdrücken ausgeführt werden. Betriebe auf gleicher Ebene haben das gleiche Dienstalter. Berechnungen werden für alle binären Operationen von links nach rechts durchgeführt, beginnend mit den oben in der Liste aufgeführten Operationen und endend mit den Operationen unten.

Das Dienstalter der Betreiber vom niedrigsten zum höchsten ist wie folgt:

Zuordnung \u003d + \u003d - \u003d * \u003d / \u003d% \u003d<<=>>=>>>=&=^=|=

Bedingte Auswahl? ::

Logisches ODER ||

Boolesches UND &&

Bitweises ODER |

Bitweise exklusiv ^

Bitweises UND &

Ungleichung! \u003d

Gleichheit / Ungleichheit \u003d\u003d! \u003d

Vergleich<<=>> =

Bitverschiebung<<>>>>>

Addition / Subtraktion + -

Multiplizieren / dividieren * /%

Negation / Komplement / unäres Minus / Inkrement / Dekrement! ~ - ++ -

Aufruf, Übergabe von Parametern ().

Reservierte Schlüsselwörter in JavaScript.

JavaScript verfügt über eine Reihe reservierter Schlüsselwörter. Es gibt drei Arten von Wörtern: JavaScript-reservierte Wörter, reservierte Wörter für die Zukunft und zu vermeidende Wörter. JavaScript-Schlüsselwörter

brechen Sie falsch in dieser Leere

weiter für neue wahre Weile

löschfunktion null typeof mit

sonst wenn return var

JavaScript-Schlüsselwörter für die zukünftige Verwendung

fall Debugger Export super

catch default erweitert den Schalter

klasse endlich werfen

const enum import try

Zu vermeidende Wörter sind solche, die bereits die Namen von internen JavaScript-Objekten oder -Funktionen enthalten. Dies schließt Wörter wie String oder parseInt ein.

Die Verwendung eines beliebigen Schlüsselworts aus den ersten beiden Kategorien führt beim Laden Ihres Programms zu einem Fehler beim Kompilieren. Die Verwendung reservierter Wörter aus der dritten Liste kann zu Fehlverhaltensproblemen führen, wenn Sie versuchen, Ihre Variablen und ursprünglichen Grundelemente mit demselben Namen im selben Programm zu verwenden. Das folgende Programm macht beispielsweise nicht das, was Sie wollen:

var text \u003d new String ("Dies ist ein String-Objekt");

In diesem Fall erhalten Sie eine Fehlermeldung, dass String kein Objekt ist. Viele Anwendungsfälle für eine bereits vorhandene Kennung sind nicht ganz klar.

Skripte. Erstellung von Skripten.

JavaScript ist eine Skriptsprache (Skriptsprache), die hauptsächlich zum Erstellen interaktiver Elemente auf Webseiten verwendet wird. Es kann verwendet werden, um Menüs zu erstellen, Formulare zu validieren, Bilder zu ändern oder alles andere zu tun, was Sie auf einer Webseite tun können. Wenn Sie sich GoogleMaps oder den GMail-Dienst von Google ansehen, können Sie sehen, wozu JavaScript heute in der Lage ist.

Da JavaScript derzeit die einzige Skriptsprache ist, die von allen gängigen Webbrowsern (InternetExplorer, Firefox, Netscape, Safari, Opera, Camino usw.) unterstützt wird, ist es weit verbreitet.

JavaScript-Code wird normalerweise vom Webbrowser des Clients ausgeführt. In diesem Fall wird er als clientseitiges Scripting bezeichnet. JavaScript kann jedoch auch auf einem Webserver ausgeführt werden, um HTML-Dokumente zu generieren, wodurch serverseitiges Scripting gerendert wird. Während JavaScript normalerweise auf clientseitiges Scripting beschränkt ist, ist es auch eine sehr leistungsfähige serverseitige Sprache.

Zum Generieren von JavaScript-Code benötigen Sie eigentlich nur einen Texteditor und einen Webbrowser. HTML- und CSS-Kenntnisse spielen auf jeden Fall eine positive Rolle. Wenn Sie JavaScript-Kenntnisse auf einer Website einsetzen möchten, benötigen Sie auch eine Website. Wenn Sie bereits eine Website haben, großartig! Wenn nicht, gibt es viele kostenlose Server, auf denen Sie Ihre Seiten hosten können.

Für den Texteditor verfügt Windows über einen NotePad-Editor. Während dies für die Bearbeitung von JavaScript, HTML und CSS ausreicht, ist ein leistungsfähigerer Editor wie EditPlus oder ein anderer möglicherweise praktischer.

Nun können Sie mit dem Erstellen von JavaScript fortfahren!

Zunächst müssen Sie lernen, wie Sie Ihrer HTML-Seite JavaScript hinzufügen. Sie können dies auf zwei Arten tun: Platzieren von Skript-Tags auf einer Webseite und Platzieren von JavaScript in diesen Tags oder Platzieren des gesamten JavaScript-Codes in einer separaten Datei und Verknüpfen mit einem Skript-Tag.

Jede dieser Methoden ist vollkommen gültig, hat aber unterschiedliche Zwecke. Wenn Sie einen kleinen Code haben, der nur auf einer Seite verwendet wird, ist es eine gute Lösung, ihn zwischen Skript-Tags zu platzieren. Wenn Sie jedoch einen großen Code haben, der auf mehreren Seiten verwendet wird, ist es wahrscheinlich besser, diesen JavaScript-Code in einer separaten Datei abzulegen und mit ihm zu verknüpfen. Dies geschieht, damit Sie diesen Code nicht jedes Mal laden müssen, wenn Sie verschiedene Seiten besuchen. Der Code wird einmal geladen und vom Browser zur späteren Verwendung gespeichert. Dies ähnelt der Verwendung von Cascading Style Sheets (CSS).

Im Folgenden finden Sie Beispiele für zwei Möglichkeiten zum Verbinden von JavaScript-Code:

Skriptfunktionen.

Sie können die Quellcode-Snippets als Funktion formatieren, indem Sie diese Funktion nach Bedarf an verschiedenen Stellen in JavaScript aufrufen.

In der Regel werden Funktionen im Kopfbereich eines HTML-Dokuments definiert, der mit Tags gekennzeichnet ist und... Wie gesagt, die Funktion muss vor dem Aufruf definiert werden. Durch das Platzieren aller Funktionsdefinitionen im Kopfbereich eines HTML-Dokuments wird sichergestellt, dass diese Funktionen verfügbar sind, wenn das Dokument verarbeitet wird.

Die allgemeine Ansicht der Funktionsdefinition ist unten dargestellt:

funktionsname ([Parameter 1] [, Parameter 2] [..., Parameter N])

funktionskörperlinien

Alle Parameter werden als Wert an die Funktion übergeben. Daher kann die Funktion den Inhalt der Variablen, die als Parameter an sie übergeben werden, nicht ändern.

Mit dem Schlüsselwort return kann eine Funktion einen Wert zurückgeben.

JavaScript-Ausdrücke sind Kombinationen operanden und betreiber.

Operationen in Ausdrücke werden nacheinander entsprechend dem Prioritätswert ausgeführt (je höher der Prioritätswert, desto höher ist er). Das zurückgegebene Ergebnis ist nicht immer vom gleichen Typ wie die verarbeiteten Daten. Beispielsweise sind Operanden unterschiedlichen Typs an Vergleichsoperationen beteiligt, aber das zurückgegebene Ergebnis ist immer vom Booleschen Typ.

Zahl: 1. Die Struktur eines Ausdrucks in JavaScript

Operanden Werden Daten von JavaScript verarbeitet? Die Operanden können sowohl einfache als auch komplexe Datentypen sowie andere Ausdrücke sein.

Betreiber Sind Symbole der Sprache, die verschiedene Operationen mit Daten ausführen. Operatoren können mit Satzzeichen oder Schlüsselwörtern geschrieben werden.

Die folgenden Arten von Operatoren werden abhängig von der Anzahl der Operanden unterschieden:
einstellig - Ein Operand ist an der Operation beteiligt.
binär - zwei Operanden sind an der Operation beteiligt;
ternär - kombiniert drei Operanden.

Die einfachste Ausdrucksform ist wörtlich - etwas, das in sich selbst berechnet, zum Beispiel die Zahl 100, die Zeichenfolge "Hellow World". Eine Variable kann auch ein Ausdruck sein, da sie den zugewiesenen Wert ergibt.

Ausdrücke und Operatoren in JavaScript

1. Arithmetische Operatoren

Rechenzeichen sind für die Ausführung mathematischer Operationen ausgelegt und arbeiten mit numerischen Operanden (oder Variablen, in denen numerische Werte gespeichert sind), wobei als Ergebnis ein numerischer Wert zurückgegeben wird.

Wenn einer der Operanden eine Zeichenfolge ist, versucht der JavaScript-Interpreter, ihn in einen numerischen Typ zu konvertieren, und führt dann die entsprechende Operation aus. Wenn die Typkonvertierung nicht möglich ist, ist das Ergebnis NaN (keine Zahl).

Tabelle 1. Arithmetische Operatoren
Bediener / Betrieb Beschreibung Priorität
+ Ergänzung Fügt numerische Operanden hinzu. Wenn einer der Operanden eine Zeichenfolge ist, wird der Ausdruck zu einer Zeichenfolge ausgewertet. 12
- Subtraktion Subtrahiert den zweiten Operanden vom ersten. 12
- Unäres Minus Wandelt eine positive Zahl in eine negative um und umgekehrt. 14
* Multiplikation Multipliziert zwei Operanden. 13
/ Aufteilung Teilt den ersten Operanden durch den zweiten. Das Divisionsergebnis kann entweder eine Ganzzahl oder eine Gleitkommazahl sein. 13
% Modulo Division (Rest der Division) Berechnet den Rest nach ganzzahliger Division des ersten Operanden durch den zweiten. Gilt sowohl für Ganzzahlen als auch für Gleitkommazahlen. 13
var x \u003d 5, y \u003d 8, z; z \u003d x + y; // gibt 13 zurück z \u003d x - y; // gibt -3 zurück z \u003d - y; // gibt -8 zurück z \u003d x * y; // gibt 40 zurück z \u003d x / y; // gibt 0,625 zurück z \u003d y% x; // gibt 3 zurück

2. Zuweisungsoperatoren

Zuweisungsoperatoren werden verwendet, um Variablen Werte zuzuweisen. Mit kombinierten Operatoren können Sie die ursprünglichen und nachfolgenden Werte in einer Variablen speichern.

var a \u003d 5; // ordne den numerischen Wert 5 der Variablen a var b \u003d "hellow" zu; // speichere den String gelb in der Variablen b var m \u003d n \u003d z \u003d 10; // weise den Variablen m, n, z einen numerischen Wert zu 10 x + \u003d 10; // äquivalent zu x \u003d x + 10; x - \u003d 10; // äquivalent zu x \u003d x - 10; x * \u003d 10; // äquivalent zu x \u003d x * 10; x / \u003d 10; // äquivalent zu x \u003d x / 10; x% \u003d 10; // äquivalent zu x \u003d x% 10;

3. Operatoren für Inkrementierung und Dekrementierung

Operationen inkrementieren und Dekrementieren sind unär und erhöhen und verringern den Wert des Operanden um eins. Der Operand kann eine Variable, ein Array-Element oder eine Objekteigenschaft sein. Am häufigsten werden solche Operationen verwendet, um einen Zähler in einer Schleife zu inkrementieren.

var x \u003d y \u003d m \u003d n \u003d 5, z, s, k, l; z \u003d ++ x * 2; / * als Ergebnis von Berechnungen gibt den Wert z \u003d 12, x \u003d 6 zurück, d.h. der Wert von x wird zuerst um 1 erhöht, und dann wird die Multiplikationsoperation ausgeführt * / s \u003d y ++ * 2; / * als Ergebnis von Berechnungen gibt den Wert s \u003d 10, y \u003d 6 zurück, d.h. zuerst wird die Multiplikationsoperation ausgeführt, und dann wird der um 1 erhöhte Wert in der y-Variablen * / k \u003d - m * 2 gespeichert; // gibt den Wert k \u003d 8 zurück, m \u003d 4 l \u003d n-- * 2; // gibt den Wert l \u003d 10 zurück, n \u003d 4

4. Vergleichsoperatoren

Vergleichsoperatoren werden verwendet, um Operanden abzugleichen. Der Ausdruck kann zu einem von zwei Werten führen - true oder false. Operanden können nicht nur Zahlen sein, sondern auch Zeichenfolgen, Boolesche Werte und Objekte. Der Vergleich kann jedoch nur für Zahlen und Zeichenfolgen durchgeführt werden, sodass Operanden, die keine Zahlen oder Zeichenfolgen sind, konvertiert werden.

Wenn beide Operanden nicht erfolgreich in Zahlen oder Zeichenfolgen konvertiert werden können, geben die Operatoren immer false zurück.

Wenn beide Operanden Zeichenfolgen / Zahlen sind oder in Zeichenfolgen / Zahlen konvertiert werden können, werden sie als Zeichenfolgen / Zahlen verglichen.

Wenn ein Operand eine Zeichenfolge ist / in eine Zeichenfolge konvertiert wird und der andere eine Zahl ist / in eine Zahl konvertiert wird, versucht der Operator, die Zeichenfolge in eine Zahl umzuwandeln und einen Zahlenvergleich durchzuführen. Wenn die Zeichenfolge keine Zahl ist, wird sie in NaN konvertiert und der Vergleich ist falsch.

Vergleichsoperationen werden am häufigsten beim Organisieren von Zweigen in Programmen verwendet.

Tabelle 4. Vergleichsoperatoren
Bediener / Betrieb Beschreibung Priorität
\u003d\u003d Gleichheit Testet auf Übereinstimmung zwischen zwei Werten und ermöglicht so die Typkonvertierung. Gibt true zurück, wenn die Operanden gleich sind, und false, wenn sie unterschiedlich sind. 9
! \u003d Ungleichung Gibt true zurück, wenn die Operanden nicht gleich sind 9
\u003d\u003d\u003d Identität Testet zwei Operanden unter Verwendung einer strengen Übereinstimmungsdefinition auf "Identität". Gibt true zurück, wenn die Operanden ohne Typkonvertierung gleich sind. 9
! \u003d\u003d Nichtidentität Führt eine Identitätsprüfung durch. Gibt true zurück, wenn die Operanden ohne Typkonvertierung nicht gleich sind. 9
\u003e Mehr Gibt true zurück, wenn der erste Operand größer als der zweite ist, andernfalls false. 10
\u003e \u003d Größer oder gleich Gibt true zurück, wenn der erste Operand mindestens der zweite ist, andernfalls false. 10
Gibt true zurück, wenn der erste Operand kleiner als der zweite ist, andernfalls false. 10
Gibt true zurück, wenn der erste Operand nicht größer als der zweite ist, andernfalls false. 10
5 \u003d\u003d "5"; // gibt true zurück 5! \u003d -5.0; // gibt true zurück 5 \u003d\u003d\u003d "5"; // gibt false zurück false \u003d\u003d\u003d false; // gibt true zurück 1! \u003d\u003d true; // gibt true zurück 1! \u003d true; // gibt false zurück, wenn true in 1 3\u003e -3 konvertiert wird; // gibt true zurück 3\u003e \u003d "4"; // gibt false zurück

5. Logische Operatoren

Logische Operatoren Mit dieser Option können Sie Bedingungen kombinieren, die Boolesche Werte zurückgeben. Wird am häufigsten in einer if-Anweisung verwendet.

(2 < 3) && (3===3); // вернет true, так как выражения в обеих скобках дают true (x < 10 && x > 0); // gibt true zurück, wenn x zwischen 0 und 10 liegt! false; // gibt true zurück

6. Bitweise Operatoren

Bitweise Operatoren Behandeln Sie Operanden als eine 32-Bit-Folge von Nullen und Einsen und geben Sie einen numerischen Wert zurück, der das Ergebnis der Operation in Dezimalschreibweise darstellt. Ganzzahlen werden als Operanden betrachtet, der Bruchteil des Operanden wird verworfen. Bitweise Operationen können beispielsweise beim Verschlüsseln von Daten, zum Arbeiten mit Flags und zum Unterscheiden von Zugriffsrechten verwendet werden.

Tabelle 6. Bitweise Operatoren
Bediener / Betrieb Beschreibung Priorität
& Bitweises UND Wenn beide Bits 1 sind, ist das resultierende Bit 1. Andernfalls ist das Ergebnis 0. 8
| Bitweises ODER Wenn einer der Operanden 1 an Position enthält, enthält das Ergebnis auch 1 an dieser Position, andernfalls ist das Ergebnis an dieser Position 0. 6
^ Exklusiv ODER Wenn ein und nur ein Wert an einer Position 1 enthält, enthält das Ergebnis auch 1 an dieser Position, andernfalls ist das Ergebnis an dieser Position 0. 7
~ Ablehnung An der binären Darstellung des Ausdruckswertes wird eine bitweise Negationsoperation ausgeführt. Jede Position, die 1 im ursprünglichen Ausdruck enthält, wird durch 0 ersetzt. Jede Position, die 0 im ursprünglichen Ausdruck enthält, wird zu 0. Positive Zahlen beginnen bei 0, negative Zahlen beginnen bei -1, also ~ n \u003d\u003d - (n + 1). 14
Der Operator verschiebt die Bits des ersten Operanden um die vom zweiten Operanden festgelegte Anzahl von Bitpositionen nach links. Nullen werden verwendet, um die Positionen auf der rechten Seite zu füllen. Gibt ein Ergebnis des gleichen Typs wie der linke Operand zurück. 11
\u003e\u003e Bitweise nach rechts verschieben Der Operator verschiebt die Bits des ersten Operanden um die vom zweiten Operanden festgelegte Anzahl von Bitpositionen nach rechts. Außerhalb des Bereichs verschobene Ziffern werden gelöscht. Das höchstwertige Bit (32.) wird nicht geändert, um das Vorzeichen des Ergebnisses beizubehalten. Wenn der erste Operand positiv ist, werden die höchstwertigen Bits des Ergebnisses mit Nullen gefüllt. Wenn der erste Operand negativ ist, werden die höchstwertigen Bits des Ergebnisses mit Einsen gefüllt. Das Verschieben eines Werts nach rechts um eine Position entspricht dem Teilen durch 2 (Verwerfen des Restes), und das Verschieben nach rechts um zwei Positionen entspricht dem Teilen durch 4 usw. 11
\u003e\u003e\u003e Bitweise nach rechts ohne Vorzeichen verschieben Der Operator verschiebt die Bits des ersten Operanden um die vom zweiten Operanden festgelegte Anzahl von Bitpositionen nach rechts. Nullen werden unabhängig vom Vorzeichen des ersten Operanden links angehängt. Außerhalb des Bereichs verschobene Ziffern werden gelöscht. 11
var x \u003d 9, y \u003d 5, z \u003d 2, s \u003d -5, Ergebnis; // 9 entspricht 1001, 5 entspricht 0101 result \u003d x & y; // gibt 1 zurück (entspricht 0001) result \u003d x | y; // gibt 13 zurück (entspricht 1101) result \u003d x ^ y; // gibt 12 zurück (entspricht 1100) result \u003d ~ y; // gibt -6 zurück (entspricht 1100) result \u003d x<< y; // вернет 288 (эквивалентно 100100000) result = x >\u003e z; // gibt 2 zurück (entspricht 10) result \u003d s \u003e\u003e\u003e z; // gibt 1073741822 zurück (entspricht 111111111111111111111111111110)

7. String-Operatoren

Es gibt mehrere Operatoren, die auf besondere Weise mit Zeichenfolgen arbeiten.

1 + 10; // gibt "110" "1" + 10 zurück; // gibt "110" 2 + 5 + "Buntstifte" zurück; // gibt "7 Buntstifte" zurück "Buntstifte" + 2 + 5; // gibt "Farbstifte 25" "1"\u003e "10" zurück; // gibt false "10" zurück<= 10; // вернет true "СССР" == "ссср"; // вернет false x = "micro"; x+= "soft"; // вернет "microsoft"

8. Spezielle Bediener

Tabelle 8. Spezielle Operatoren
Bediener / Betrieb Beschreibung Priorität
... Zugriff auf eine Immobilie Greifen Sie auf eine Eigenschaft eines Objekts zu. 15
, Mehrfachberechnung Wertet mehrere unabhängige Ausdrücke in einer einzelnen Zeile aus. 1
Array-Indizierung Greifen Sie auf die Elemente eines Arrays oder auf die Eigenschaften eines Objekts zu. 15
() Funktionsaufruf, Gruppierung Gruppiert Operationen oder ruft eine Funktion auf. 15
typeof Datentypdefinition Unärer Operator, gibt den Datentyp des Operanden zurück. 14
Instanz der Objekttypprüfung Der Operator prüft, ob ein Objekt eine Instanz einer bestimmten Klasse ist. Der linke Operand muss ein Objekt sein, der rechte Operand muss den Namen der Objektklasse enthalten. Das Ergebnis ist true, wenn das links angegebene Objekt eine Instanz der rechts angegebenen Klasse ist, andernfalls false. 10
in Überprüfen, ob eine Eigenschaft vorhanden ist Der linke Operand muss eine Zeichenfolge sein, und der rechte muss ein Array oder Objekt sein. Wenn der linke Wert eine Eigenschaft eines Objekts ist, ist das Ergebnis wahr. 10
neue Objekterstellung Der Operator erstellt ein neues Objekt mit undefinierten Eigenschaften und ruft dann die Konstruktorfunktion auf, um es zu initialisieren (Parameter übergeben). Kann auch zum Erstellen eines Arrays verwendet werden. 1
löschen Löschen Mit dem Operator können Sie eine Eigenschaft aus einem Objekt oder ein Element aus einem Array entfernen. Gibt true zurück, wenn das Löschen erfolgreich war, andernfalls false. Durch das Entfernen eines Array-Elements wird seine Länge nicht geändert. 14
void Definiert einen Ausdruck ohne Rückgabewert Unärer Operator, verwirft den Wert des Operanden und gibt unterdefiniert zurück. 14
?: Bedingte Ausdrucksoperation Mit dem ternären Operator können Sie einfache Verzweigungen organisieren. Der Ausdruck enthält drei Operanden, der erste muss ein Boolescher Wert sein oder in diesen konvertiert werden, und der zweite und dritte müssen beliebige Werte sein. Wenn der erste Operand wahr ist, nimmt der bedingte Ausdruck den Wert des zweiten Operanden an. wenn falsch - dann drittens. 3
document.write ("Hallo Welt"); // zeigt den String an Hallo Welt i \u003d 0, j \u003d 1; // speichert Werte in Variablen function1 (10, 5); // rufe die Funktion function1 mit den Parametern 10 und 5 auf var year \u003d; // erstellt ein Array mit Elementen typeof (a: 1); // gibt "Objekt" zurück var d \u003d new Date (); // Erstelle ein neues Objekt mit dem Date () Konstruktor d instanceof Date; // wird true zurückgeben var mycar \u003d (Marke: "Honda", Modell: "Accord", Jahr: 2005); "machen" in mycar; // gibt true zurück var obj \u003d new Object (); // erstellt ein leeres Objekt var food \u003d ["Milch", "Brot", "Fleisch", "Olivenöl", "Käse"]; Lebensmittel löschen; // entfernt das vierte Element aus dem Essen x\u003e 10? x * 2: x / 2; // gibt den Wert x * 2 zurück, wenn x\u003e 10 ist, andernfalls x / 2

9. JavaScript-Kommentare

Einzeiliger Kommentar: Vor dem Kommentartext stehen // Zeichen.

Ein Operator ist ein Symbol oder ein Schlüsselwort, das eine Berechnung durchführt, die einen oder mehrere Werte umfasst. Die Werte links und rechts vom Operator werden als Operanden bezeichnet. Ein Operator mit einem Operanden heißt unär, mit zwei binär, mit drei ternär.

Operatoren können die Typen ihrer Operanden nach Bedarf automatisch konvertieren. Beispielsweise erwartet der Multiplikationsoperator * Zahlen, sodass der Ausdruck "2" * "3" als vollkommen gültig angesehen wird, da der Interpreter Zeichenfolgen implizit in Zahlen konvertiert.

Bedienerpriorität

Bedienerpriorität ist eine Eigenschaft eines Operators, die die Reihenfolge seiner Ausführung in einem Ausdruck mit mehreren verschiedenen Operatoren beeinflusst, wenn keine explizite Angabe der Reihenfolge ihrer Auswertung vorliegt. Anweisungen mit höherer Priorität werden vor Anweisungen mit niedrigerer Priorität ausgeführt.

In der Spalte Operator geben die drei Punkte die Position der Operanden relativ zum Operator an.

Spalte A gibt die Assoziativität des Operators an. Assoziativität ist die Reihenfolge, in der Operatoren mit derselben Priorität verarbeitet werden. Beispielsweise hat der Subtraktionsoperator eine Assoziativität von links nach rechts, sodass die folgenden zwei Ausdrücke äquivalent sind:

X - y - z (x - y) - z

Der Zuweisungsoperator ist von rechts nach links assoziativ, daher sind die folgenden zwei Ausdrücke äquivalent:

W \u003d x \u003d y \u003d z w \u003d (x \u003d (y \u003d z))

Spalte O gibt die Anzahl der Operanden an.

In der Spalte Werttypen werden die erwarteten Operandentypen vor dem Pfeil und der Rückgabetyp nach dem Pfeil angegeben.

lval (kurz für linker Wert) ist ein linksseitiger Ausdruck. Dies ist ein historischer Begriff für einen Ausdruck, der möglicherweise links von einem Zuweisungsoperator angezeigt wird. Ausdrücke auf der linken Seite sind: Variablen, Objekteigenschaften und Array-Elemente.

In der folgenden Tabelle sind die Operatoren in absteigender Reihenfolge der Priorität aufgeführt, wobei horizontale Linien Gruppen von Operatoren mit unterschiedlichen Prioritätsstufen trennen.

Operator Bedienertyp UND ÜBER Werttypen
(…) Gruppierung ist abwesend
1 beliebig → beliebig
… . …
… […]
Neu ... ()
Zugangsbetreiber
Zugangsbetreiber
neu (mit einer Liste von Argumenten)
von links nach rechts
von links nach rechts
ist abwesend
2
2
1
lval, lval -\u003e beliebig
lval, string oder number -\u003e any
Konstruktor -\u003e Objekt
… ()
Neu ...
Funktionsaufruf
neu (keine Argumente)
von links nach rechts
von rechts nach links
1
1
funktion -\u003e beliebig
Konstruktor -\u003e Objekt
… ++
… --
Postfix-Inkrement
Postfix-Dekrement
ist abwesend
ist abwesend
1
1
lval -\u003e number
lval -\u003e number
! …
~ …
+ …
- …
++ …
-- …
löschen ...
Art der ...
nichtig ...
Logisches NICHT (Inversion)
Bitweise NICHT (Inversion)
Unäres Plus
Unäres Minus
Präfixinkrement
Präfixdekrement
Löschen
Definiert den Datentyp
Rückgabe eines undefinierten Wertes
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
1
1
1
1
1
1
1
1
1
any -\u003e boolean
ganz → ganz
Nummer -\u003e Nummer
Nummer -\u003e Nummer
lval -\u003e number
lval -\u003e number
lval -\u003e boolean
beliebige -\u003e Zeichenfolge
any -\u003e undefined
… ** …
… * …
… / …
… % …
Potenzierung
Multiplikation
Aufteilung
Teilung mit Rest
von rechts nach links
von links nach rechts
von links nach rechts
von links nach rechts
2
2
2
2
nummer, Nummer -\u003e Nummer
Nummer, Nummer -\u003e Nummer
Nummer, Nummer -\u003e Nummer
Nummer, Nummer -\u003e Nummer
… + …
… - …
… + …
Zusatz
Subtraktion
Verkettung
von links nach rechts
von links nach rechts
von links nach rechts
2
2
2
nummer, Nummer -\u003e Nummer
Nummer, Nummer -\u003e Nummer
Zeichenfolge, Zeichenfolge -\u003e Zeichenfolge
… << …
… >> …
… >>> …
Shift Beats nach links
Verschieben Sie die Bits mit der Zeichenerhaltung nach rechts
Verschieben Sie die Bits mit Null-Auffüllung nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
2
2
2
ganz, ganz → ganz
ganz, ganz → ganz
ganz, ganz → ganz
… < …
… <= …
… > …
… >= …
... im ...
... Instanz von ...
Weniger als
Weniger oder gleich
Mehr als
Mehr oder gleich
Überprüfen, ob eine Eigenschaft vorhanden ist
Überprüfung auf Zugehörigkeit zu diesem Typ
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
2
2
2
2
2
2
zahl, Zahl -\u003e Boolescher Wert
Zahl, Zahl -\u003e Boolescher Wert
Zahl, Zahl -\u003e Boolescher Wert
Zahl, Zahl -\u003e Boolescher Wert
Zeichenfolge, Objekt -\u003e Boolescher Wert
Objekt, Konstruktor -\u003e Boolescher Wert
… == …
… != …
… === …
… !== …
Gleichermaßen
Nicht gleich
Streng gleich
Streng nicht gleich
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
2
2
2
2
any, any -\u003e boolean
any, any -\u003e boolean
any, any -\u003e boolean
any, any -\u003e boolean
… & … Bitweises UND von links nach rechts 2 ganz, ganz → ganz
… ^ … Bitweise EXKLUSIV ODER von links nach rechts 2 ganz, ganz → ganz
… | … Zuweisungsvorgang
Zuweisungsvorgang
Zuweisungsvorgang
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
von rechts nach links
2
2
2
2
2
2
2
2
2
2
2
2
2
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
lval, any -\u003e any
ausbeute ...
Ausbeute * ...
ausbeute
Ausbeute *
von rechts nach links
von rechts nach links
1
1
... … Erweiterung ist abwesend 1
… , … Komma von links nach rechts 2 any, any → any