Javascript-Berechnungsoperatoren. JavaScript-Operatoren. Vereinfachte Syntax zum Erstellen von Arrays und Generatoren

💖 Gefällt es dir? Teilen Sie den Link mit Ihren Freunden

In diesem Kapitel werden die Ausdrücke und Operatoren von JavaScript beschrieben, einschließlich Zuweisung, Vergleich, Arithmetik, bitweise, logische, Zeichenfolge, ternäre und mehr.

Eine vollständige und detaillierte Liste der Operatoren und Ausdrücke finden Sie auch in der Referenz.

Betreiber

JavaScript verfügt über die folgenden Arten von Operatoren. Dieser Abschnitt beschreibt die Operatoren und enthält Informationen zur Operatorpriorität.

JavaScript hat beides binär Und einstellig Operatoren und einen speziellen ternären Operator, den Bedingungsoperator. Ein binärer Operator erfordert zwei Operanden, einen vor dem Operator und einen nach dem Operator:

operand1 Operator operand2

Zum Beispiel 3+4 oder x*y .

Ein unärer Operator erfordert einen einzelnen Operanden, entweder vor oder nach dem Operator:

Operator Operand Operand Operator 12; // 0,5 1 / 2 == 1,0 / 2,0; // Das ist wahr

Zusätzlich zu den standardmäßigen arithmetischen Operationen (+, -, * /) stellt JavaScript die in der folgenden Tabelle aufgeführten arithmetischen Operatoren zur Verfügung:

Rechenzeichen
Operator Beschreibung Beispiel
Rest (%) Binärer Operator. Gibt den ganzzahligen Rest der Division der beiden Operanden zurück. 12 % 5 Renditen 2.
Inkrement (++) Unärer Operator. Fügt eins zu seinem Operanden hinzu. Bei Verwendung als Präfixoperator (++x) wird nach dem Hinzufügen von eins der Wert seines Operanden zurückgegeben. Wenn er als Postfix-Operator (x++) verwendet wird, gibt er den Wert seines Operanden zurück, bevor er einen hinzufügt. Wenn x 3 ist, dann setzt ++x x auf 4 und gibt 4 zurück, während x++ 3 zurückgibt und erst dann x auf 4 setzt.
Dekrementieren (--) Unärer Operator. Subtrahiert eins von seinem Operanden. Der Rückgabewert ist analog zum Inkrementoperator. Wenn x 3 ist, dann setzt --x x auf 2 und gibt 2 zurück, während x-- 3 zurückgibt und erst dann x auf 2 setzt.
Unäre Negation (-) Unärer Operator. Gibt die Negation seines Operanden zurück. Wenn x 3 ist, gibt -x -3 zurück.
Unäres Plus (+) Unärer Operator. Versucht, den Operanden in eine Zahl umzuwandeln, sofern dies noch nicht geschehen ist. +"3" gibt 3 zurück.
+true gibt 1 zurück.
Exponentialoperator (**) Berechnet den Basisexponenten hoch, also den Basisexponenten 2 ** 3 gibt 8 zurück.
10 ** -1 gibt 0,1 zurück.

Bitweise Operatoren

Verwenden Sie „instanceof“, wenn Sie den Typ eines Objekts zur Laufzeit bestätigen müssen. Wenn Sie beispielsweise Ausnahmen abfangen, können Sie je nach Art der ausgelösten Ausnahme zu unterschiedlichem Ausnahmebehandlungscode verzweigen.

Der folgende Code verwendet beispielsweise „instanceof“, um zu bestimmen, ob „theDay“ ein Date-Objekt ist. Da theDay ein Date-Objekt ist, werden die Anweisungen in der if-Anweisung ausgeführt.

Var theDay = new Date(1995, 12, 17); if (theDay-Instanz von Date) ( // auszuführende Anweisungen)

Vorrang des Operators

Der Vorrang Die Anzahl der Operatoren bestimmt die Reihenfolge, in der sie bei der Auswertung eines Ausdrucks angewendet werden. Sie können die Operatorpriorität durch die Verwendung von Klammern außer Kraft setzen.

Die folgende Tabelle beschreibt die Rangfolge der Operatoren, vom höchsten zum niedrigsten.

Vorrang des Operators
Betreibertyp Einzelne Betreiber
Mitglied .
Instanz aufrufen/erstellen () neu
Negation/Inkrement ! ~ - + ++ -- typeof void delete
multiplizieren/dividieren * / %
Addition Subtraktion + -
bitweise Verschiebung << >> >>>
relational < <= >>= in Instanz von
Gleichwertigkeit == != === !==
bitweise-und &
bitweises-xor ^
bitweise-oder |
logisch-und &&
logisch-oder ||
bedingt ?:
Abtretung = += -= *= /= %= <<= >>= >>>= &= ^= |=
Komma ,

Eine ausführlichere Version dieser Tabelle mit Links zu weiteren Details zu jedem Operator finden Sie in der JavaScript-Referenz.

Ausdrücke

Ein Ausdruck ist jede gültige Codeeinheit, die in einen Wert aufgelöst wird.

Jeder syntaktisch gültige Ausdruck löst sich in einen bestimmten Wert auf, aber konzeptionell gibt es zwei Arten von Ausdrücken: mit Nebenwirkungen (z. B. solche, die einer Variablen einen Wert zuweisen) und solche, die in gewissem Sinne einen Wert auswerten und daher auflösen.

Der Ausdruck x = 7 ist ein Beispiel für den ersten Typ. Dieser Ausdruck verwendet das = Operator um der Variablen x den Wert sieben zuzuweisen. Der Ausdruck selbst ergibt sieben.

Der Code 3 + 4 ist ein Beispiel für den zweiten Ausdruckstyp. Dieser Ausdruck verwendet den Operator „+“, um drei und vier zu addieren, ohne das Ergebnis sieben einer Variablen zuzuweisen.

JavaScript verfügt über die folgenden Ausdruckskategorien:

Primäre Ausdrücke

Grundlegende Schlüsselwörter und allgemeine Ausdrücke in JavaScript.

Das

Verwenden Sie das Schlüsselwort this, um auf das aktuelle Objekt zu verweisen. Im Allgemeinen bezieht sich dies auf das aufrufende Objekt in einer Methode. Verwenden Sie dies entweder mit der Punkt- oder der Klammernotation:

This["propertyName"] this.propertyName

Angenommen, eine Funktion namens „validate“ validiert die Werteigenschaft eines Objekts anhand der gegebenen Werte Objekt und die hohen und niedrigen Werte:

Funktion validieren(obj, lowval, hival) ( if ((obj.value< lowval) || (obj.value >hival)) console.log("Ungültiger Wert!"); )

Sie könnten „validate“ im onChange-Ereignishandler jedes Formularelements aufrufen und es damit an das Formularelement übergeben, wie im folgenden Beispiel:

Geben Sie eine Zahl zwischen 18 und 99 ein:

Gruppierungsoperator

Der Gruppierungsoperator() steuert die Priorität der Auswertung in Ausdrücken. Sie können beispielsweise zuerst die Multiplikation und Division und dann die Addition und Subtraktion überschreiben, um die Addition zuerst auszuwerten.

Var a = 1; var b = 2; var c = 3; // Standardpriorität a + b * c // 7 // standardmäßig wie folgt ausgewertet a + (b * c) // 7 // überschreibt jetzt die Priorität // Addition vor der Multiplikation (a + b) * c // 9 / / was a * c + b * c // 9 entspricht

Ausdrücke auf der linken Seite

Linke Werte sind das Ziel einer Zuweisung.

neu

Mit dem new-Operator können Sie eine Instanz eines benutzerdefinierten Objekttyps oder eines der integrierten Objekttypen erstellen. Neu wie folgt verwenden:

Var objectName = new objectType();

super

Das Schlüsselwort super wird verwendet, um Funktionen für das übergeordnete Objekt eines Objekts aufzurufen. Bei Klassen ist es beispielsweise nützlich, den übergeordneten Konstruktor aufzurufen.

Super(); // ruft den übergeordneten Konstruktor auf. super.functionOnParent();

Spread-Operator

Der Spread-Operator ermöglicht die Erweiterung eines Ausdrucks an Stellen, an denen mehrere Argumente (für Funktionsaufrufe) oder mehrere Elemente (für Array-Literale) erwartet werden.

Beispiel: Wenn Sie heute über ein Array verfügen und ein neues Array erstellen möchten, in dem das vorhandene Array enthalten ist, reicht die Syntax des Array-Literals nicht mehr aus und Sie müssen auf imperativen Code zurückgreifen und eine Kombination aus push , splice , concat , usw. Mit der Spread-Syntax wird dies viel prägnanter:

Var parts = ["Schultern", "Knie"]; var Lyrics = ["Kopf", ...Teile, "und", "Zehen"];

Ebenso funktioniert der Spread-Operator mit Funktionsaufrufen:

Funktion f(x, y, z) ( ) var args = ; f(...Argumente);

In diesem Kapitel werden JavaScript-Ausdrücke und -Operatoren beschrieben, z. B. Zuweisungs-, Vergleichs-, arithmetische, bitweise, logische, Zeichenfolgen- und verschiedene Spezialoperatoren.

Voll und detaillierte Liste Operatoren und Ausdrücke sind ebenfalls in diesem Handbuch verfügbar.

Betreiber

JavaScript verfügt über die folgenden Arten von Operatoren. In diesem Unterabschnitt werden die einzelnen Typen beschrieben und Informationen über deren Vorrang voreinander gegeben.

JavaScript unterstützt binäre und unäre Operatoren sowie einen weiteren speziellen ternären Operator, den Bedingungsoperator. Eine binäre Operation verwendet zwei Operanden, einen vor dem Operator und einen nach ihm:

operand1 Operator operand2

Zum Beispiel: 3+4 oder x*y.

Eine unäre Operation hingegen verwendet einen Operanden vor oder nach dem Operator:

Operator Operand Operand Operator

Zum Beispiel: x++ oder ++x.

Zuweisungsoperatoren

Als Ergebnis der Zuweisungsoperation wird der Operand links vom Zuweisungsoperator (das „=“-Zeichen) auf den Wert gesetzt, der vom rechten Operanden übernommen wird. Der grundlegende Zuweisungsoperator ist =, der den Wert des rechten Operanden dem Operanden auf der linken Seite zuweist. Der Ausdruck x = y bedeutet also, dass x den Wert von y zugewiesen wird.

Es gibt auch zusammengesetzte Zuweisungsoperatoren, die zur Kurzdarstellung der in der folgenden Tabelle beschriebenen Operationen verwendet werden:

Liste der Zuweisungsoperatoren
Name Kurzschriftoperator Bedeutung
Abtretung x = y x = y
Aufgabe mit Zusatz x += y x = x + y
Aufgabe mit Subtraktion x -= y x = x - y
Aufgabe mit Multiplikation x *= y x = x * y
Aufgabe mit Teilung x/=y x = x / y
Modulo-Zuweisung x %= y x = x % y
Linke Schichtbelegung X<<= y x = x<< y
Rechte Schichtbelegung x >>= y x = x >> y
Unsignierte rechte Schichtzuweisung x >>>= y x = x >>> y
Zuweisung mit bitweisem UND x &= y x = x & y
Zuweisung mit bitweisem XOR x^=y x = x^y
Zuweisung mit bitweisem ODER x |= y x = x | j

Destrukturierend

Für komplexere Zuweisungen verfügt JavaScript über eine destrukturierende Syntax, einen Ausdruck, der es Ihnen ermöglicht, Daten aus Arrays oder Objekten mithilfe einer Syntax abzurufen, die Array-Konstruktoren und Objektliterale widerspiegelt.

Var foo = ["eins", "zwei", "drei"]; // ohne Destrukturierung var one = foo; var zwei = foo; var three = foo; // mit Destrukturierung var = foo;

Vergleichsoperatoren

Mit dem Löschoperator können Sie Variablen löschen, die implizit deklariert sind. Sie können ihn jedoch nicht zum Löschen von Variablen verwenden, die mit var deklariert sind.

Nach der Anwendung des Löschoperators ändert sich die Eigenschaft des Elements in undefiniert. Der Löschoperator gibt „true“ zurück, wenn die Operation möglich ist; Der Operator gibt false zurück, wenn die Operation nicht ausgeführt werden kann.

X = 42; var y = 43; myobj = neue Zahl(); myobj.h = 4; // Eigenschaft h erstellen, x löschen; // gibt true zurück (Sie können eine implizit deklarierte Variable löschen) delete y; // gibt false zurück (Sie können eine mit var deklarierte Variable nicht löschen) delete Math.PI; // gibt false zurück (integrierte Eigenschaften können nicht gelöscht werden) delete myobj.h; // gibt true zurück (Sie können benutzerdefinierte Eigenschaften löschen) delete myobj; // gibt true zurück (Sie können ein implizit deklariertes Objekt löschen)

Array-Elemente entfernen

Das Entfernen eines Array-Elements hat keinen Einfluss auf die Länge des Arrays. Wenn Sie beispielsweise a entfernen, bleibt das Element a a und a wird undefiniert.

Wenn ein Array-Element mit dem Löschoperator gelöscht wird, wird der Wert dieses Elements aus dem Array entfernt. Im folgenden Beispiel wird das Element „trees“ mithilfe des Löschoperators gelöscht. Das Element „trees“ bleibt jedoch adressierbar und gibt undefiniert zurück.

Var-Bäume = new Array("redwood", "bay", "cedar", "oak", "maple"); Bäume löschen; if (3 in Bäumen) ( // Bedingung ist nicht erfüllt)

Wenn Sie möchten, dass ein Element im Array verbleibt, aber einen undefinierten Wert hat, verwenden Sie das Schlüsselwort undefiniert anstelle des Löschoperators. Im folgenden Beispiel wird das Element „trees“ auf undefiniert gesetzt, das Element verbleibt jedoch im Array:

Var-Bäume = new Array("redwood", "bay", "cedar", "oak", "maple"); Bäume = undefiniert; if (3 in Bäumen) ( // dieser Codeblock wird ausgeführt)

Typ des Operators

Benutzen Sie den Operator Instanz, wenn Sie den Typ eines Objekts während der Programmausführung bestätigen müssen. Wenn Sie beispielsweise Ausnahmen abfangen, können Sie je nach Art der behandelten Ausnahme unterschiedliche Programmierübergänge erstellen, um Ausnahmen zu behandeln.

Der folgende Code verwendet beispielsweise den Operator „instanceof“, um zu testen, ob das Day-Objekt ein Date-Objekt ist. Da theDay tatsächlich ein Date-Objekt ist, führt das Programm den in der if-Anweisung enthaltenen Code aus.

Var theDay = new Date(1995, 12, 17); if (theDay-Instanz von Date) ( // auszuführender Code)

Vorrang des Operators

Eine Priorität Operatoren bestimmen die Reihenfolge, in der sie bei der Auswertung eines Ausdrucks ausgeführt werden. Mit Hilfe von Klammern können Sie die Rangfolge der Operatoren beeinflussen.

Die folgende Tabelle beschreibt die Operatorpriorität vom höchsten zum niedrigsten.

Tabelle 3.7 Bedienerpriorität
Betreibertyp Betreiber
Objekteigenschaft .
Aufruf, Instanziierung eines Objekts () neu
Negation, Inkrement ! ~ - + ++ -- typeof void delete
Multiplikation, Division * / %
Addition Subtraktion + -
Bitverschiebung << >> >>>
Vergleich, Vorkommnis < <= >>= in Instanz von
Gleichwertigkeit == != === !==
bit-und &
bit-exklusiv-oder ^
bit-oder |
boolean-und &&
boolean-oder ||
bedingter (ternärer) Operator ?:
Abtretung = += -= *= /= %= <<= >>= >>>= &= ^= |=
Komma ,

Mehr ausführliche Version Diese Tabelle enthält Links und Weitere Informationen für jeden Operator finden Sie im JavaScript-Referenzbuch.

Ausdrücke

Ausdruck ist ein beliebiger gültiger Codeblock, der einen Wert zurückgibt.

Konzeptionell gibt es zwei Arten von Ausdrücken: solche, die zuweisen variabler Wert und diejenigen, die einen Wert berechnen, ohne ihn zuzuweisen.

Der Ausdruck x = 7 ist ein Beispiel für den ersten Ausdruckstyp. Dieser Ausdruck verwendet Operator= um der Variablen x den Wert 7 zuzuweisen . Der Ausdruck selbst ist ebenfalls gleich 7.

Der Code 3 + 4 ist ein Beispiel für den zweiten Ausdruckstyp. Dieser Ausdruck verwendet Operator„+“, um die Zahlen 3 und 4 zu addieren, ohne das resultierende Ergebnis 7 einer Variablen zuzuweisen.

Alle Ausdrücke in JavaScript sind in die folgenden Kategorien unterteilt:

Grundlegende Ausdrücke

Grundlegende Schlüsselwörter und grundlegende Ausdrücke in JavaScript.

Dieser Operator

Verwenden Sie das Schlüsselwort this, um auf das aktuelle Objekt zu verweisen. Im Allgemeinen verweist dies auf das aufrufbare Objekt, das Eigentümer ist diese Methode. Verwenden Sie dies folgendermaßen:

This["propertyName"] this.propertyName

Angenommen, die Validierungsfunktion prüft die Werteigenschaft eines Objekts. Das Objekt sowie die Ober- und Untergrenzen für den Wert dieser Eigenschaft werden angegeben:

Funktion validieren(obj, lowval, hival)( if ((obj.value< lowval) || (obj.value >hival)) alarm("Ungültiger Wert!"); )

Sie können die Validierungsfunktion im Handler aufrufen onChange-Ereignisse für jedes Formularelement, indem Sie dies verwenden, um auf das Formularelement zu verweisen, wie im folgenden Beispiel gezeigt:

Geben Sie eine Zahl zwischen 18 und 99 ein:

Gruppierungsoperator

Der Klammergruppierungsoperator () steuert die Auswertungspriorität von Ausdrücken. Sie können beispielsweise die Reihenfolge neu definieren – „Multiplizieren und dividieren, dann addieren und subtrahieren“, sodass beispielsweise die Addition vor der Multiplikation erfolgt:

Var a = 1; var b = 2; var c = 3; // übliche Reihenfolge a + b * c // 7 // wie gewohnt gemacht, also a + (b * c) // 7 // jetzt die Reihenfolge ändern // Addition vor der Multiplikation (a + b) * c // 9 // was dem folgenden entspricht: a * c + b * c // 9

Vereinfachte Syntax zum Erstellen von Arrays und Generatoren

Vereinfachte Syntax ist eine experimentelle JavaScript-Funktion, die möglicherweise zu zukünftigen Versionen von ECMAScript hinzugefügt wird. Es gibt 2 Versionen der Syntax:

Vereinfachte Syntax für Arrays. (für (x von y) y) Vereinfachte Syntax für Generatoren.

In vielen Programmiersprachen gibt es vereinfachte Syntaxen, mit denen Sie schnell ein neues Array basierend auf einem vorhandenen zusammenstellen können. Zum Beispiel:

) i*i ]; // [ 1, 4, 9 ] var abc = [ "A", "B", "C" ]; ; // [ „a“, „b“, „c“ ]

Linkshändige Ausdrücke

Den Werten auf der linken Seite werden die Werte auf der rechten Seite zugewiesen.

neu

Mit dem new-Operator können Sie ein Objekt eines benutzerdefinierten Typs oder eines der integrierten Objekte instanziieren. Verwenden Sie den neuen Operator wie folgt:

Var objectName = new objectType();

super

Das Schlüsselwort wird verwendet, um Funktionen für das übergeordnete Objekt aufzurufen. Dies ist auch bei Klassen nützlich, um beispielsweise den Konstruktor des übergeordneten Elements aufzurufen.

Super(); // ruft den Konstruktor des übergeordneten Elements auf. super.functionOnParent();

Erweiterungsbetreiber

Der Erweiterungsoperator ermöglicht die Erweiterung eines Ausdrucks an Stellen mit mehreren Argumenten (für Funktionsaufrufe) oder mehreren Elementen (für Arrays).

Beispiel: Wenn Sie heute über ein Array verfügen und ein neues mit einem vorhandenen Teil des ersten erstellen möchten, reicht die Literal-Array-Syntax nicht mehr aus und Sie müssen imperativen Code (keine Varianten) mit einer Kombination aus Push, Splice usw. schreiben. concat usw. Aber mit diesem Operator wird der Code kürzer:

Var parts = ["Schulter", "Knie"]; var Lyrics = ["Kopf", ...Teile, "und", "Zehen"];

Bei Funktionsaufrufen funktioniert der Operator ähnlich:

Funktion f(x, y, z) ( ) var args = ; f(...Argumente);

Ausdrücke in JavaScript sind Kombinationen Operanden Und Betreiber.

Operationen in-Ausdrücke werden sequentiell 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 der Typ der verarbeiteten Daten. Bei Vergleichsoperationen handelt es sich beispielsweise um Operanden verschiedene Arten, aber das zurückgegebene Ergebnis ist immer ein boolescher Typ.

Reis. 1. Ausdrucksstruktur in JavaScript

Operanden sind die vom JavaScript-Skript verarbeiteten Daten. Die Operanden können entweder einfache oder komplexe Datentypen sowie andere Ausdrücke sein.

Betreiber sind Sprachsymbole, die verschiedene Operationen mit Daten ausführen. Operatoren können mit Satzzeichen oder Schlüsselwörtern geschrieben werden.

Abhängig von der Anzahl der Operanden werden folgende Arten von Operatoren unterschieden:
einstellig— an der Operation ist ein Operand beteiligt;
binär— Die Operation umfasst zwei Operanden;
ternär– kombiniert drei Operanden.

Die einfachste Ausdrucksform ist wörtlich– etwas, das sich selbst auswertet, zum Beispiel die Zahl 100, die Zeichenfolge „Hello world“ . Eine Variable kann auch ein Ausdruck sein, da sie den ihr zugewiesenen Wert ergibt.

Ausdrücke und Operatoren in JavaScript

1. Arithmetische Operatoren

Rechenzeichen Sie sind für die Durchführung mathematischer Operationen konzipiert und arbeiten mit numerischen Operanden (oder Variablen, die numerische Werte speichern) und geben als Ergebnis einen numerischen Wert zurück.

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

Tabelle 1. Arithmetische Operatoren
Betreiber/Betrieb Beschreibung Eine Priorität
+ Ergänzung Fügt numerische Operanden hinzu. Wenn einer der Operanden eine Zeichenfolge ist, ist das Ergebnis des Ausdrucks eine Zeichenfolge. 12
- Subtraktion Subtrahiert den zweiten Operanden vom ersten. 12
- Unäres Minus Wandelt eine positive Zahl in eine negative Zahl um und umgekehrt. 14
* Multiplikation Multipliziert zwei Operanden. 13
/ Aufteilung Dividiert den ersten Operanden durch den zweiten. Das Ergebnis der Division kann entweder eine ganze Zahl oder eine Gleitkommazahl sein. 13
% Modulo-Division (Divisionsrest) Berechnet den Rest, der sich aus einer ganzzahligen Division des ersten Operanden durch den zweiten ergibt. Gilt sowohl für Ganzzahlen als auch für Gleitkommazahlen. 13
var x = 5, y = 8, z; z = x + y; // return 13 z = x - y; // return -3 z = - y; // return -8 z = x * y; // return 40 z = x / y; // return 0,625 z = y % x; // 3 zurückgeben

2. Zuweisungsoperatoren

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

var a = 5; // der Variablen a den numerischen Wert 5 zuweisen var b = "hello"; // speichere den String hellow in Variable b var m = n = z = 10; // den Variablen m, n, z den Zahlenwert 10 x += 10 zuweisen; // äquivalent zu x = x + 10; x -= 10; // äquivalent zu x = x - 10; x *= 10; // äquivalent zu x = x * 10; x /= 10; // äquivalent zu x = x / 10; x %= 10; // äquivalent zu x = x % 10;

3. Inkrement- und Dekrementoperatoren

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 erhöhen.

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

4. Vergleichsoperatoren

Vergleichsoperatoren werden zum Abgleichen von Operanden verwendet. Das Ergebnis des Ausdrucks kann einer von zwei Werten sein – true oder false . Operanden können nicht nur Zahlen, sondern auch Zeichenfolgen, logische Werte und Objekte sein. Allerdings können Vergleiche nur mit Zahlen und Zeichenfolgen durchgeführt werden, sodass Operanden, die keine Zahlen oder Zeichenfolgen sind, konvertiert werden.

Können beide Operanden nicht erfolgreich in Zahlen oder Strings umgewandelt werden, geben die Operatoren immer false zurück.

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

Wenn ein Operand eine Zeichenfolge ist/in eine Zeichenfolge umgewandelt wird und der andere eine Zahl ist/in eine Zahl umgewandelt 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 das Ergebnis des Vergleichs ist false .

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

Tabelle 4. Vergleichsoperatoren
Betreiber/Betrieb Beschreibung Eine Priorität
== Gleichheit Testet zwei Werte auf denselben Wert und ermöglicht so eine Typkonvertierung. Gibt true zurück, wenn die Operanden gleich sind, und false, wenn sie unterschiedlich sind. 9
!= Ungleichheit Gibt true zurück, wenn die Operanden nicht gleich sind 9
=== Identität Testet zwei Operanden auf „Identität“ unter Verwendung einer strengen Definition einer Übereinstimmung. Gibt true zurück, wenn die Operanden ohne Typkonvertierung gleich sind. 9
!== Nicht-Identität Führt eine Identitätsüberprüfung durch. Gibt true zurück, wenn die Operanden ohne Typkonvertierung nicht gleich sind. 9
> Mehr Gibt „true“ zurück, wenn der erste Operand größer als der zweite ist, andernfalls wird „false“ zurückgegeben. 10
>= Größer oder gleich Gibt „true“ zurück, wenn der erste Operand nicht kleiner als der zweite ist, andernfalls wird „false“ zurückgegeben. 10
Gibt „true“ zurück, wenn der erste Operand kleiner als der zweite ist, andernfalls wird „false“ zurückgegeben. 10
Gibt „true“ zurück, wenn der erste Operand nicht größer als der zweite ist, andernfalls wird „false“ zurückgegeben. 10
5 == "5"; // true zurückgeben 5 != -5.0; // true zurückgeben 5 === "5"; // false zurückgeben false === false; // true zurückgeben 1 !== true; // true zurückgeben 1 != true; // gibt false zurück, da true in 1 3 > -3 konvertiert wird; // true zurückgeben 3 >= "4"; // falsch zurückgeben

5. Logische Operatoren

Logische Operatoren ermöglichen es Ihnen, zurückkehrende Bedingungen zu kombinieren logische Werte. Wird am häufigsten in einer if-Bedingungsanweisung verwendet.

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

6. Bitweise Operatoren

Bitweise Operatoren Bearbeiten Sie Operanden als 32-Bit-Sequenz aus Einsen und Nullen und geben Sie einen numerischen Wert zurück, der das Ergebnis der Operation angibt, geschrieben in Dezimalschreibweise. Als Operanden gelten ganze Zahlen, der Bruchteil des Operanden wird verworfen. Bitweise Operationen können beispielsweise beim Verschlüsseln von Daten, beim Arbeiten mit Flags und beim Festlegen von Zugriffsrechten verwendet werden.

Tabelle 6. Bitweise Operatoren
Betreiber/Betrieb Beschreibung Eine Priorität
& Bitweises UND Wenn beide Bits 1 sind, ist das resultierende Bit 1. Ansonsten ist das Ergebnis 0. 8
| Bitweises ODER Wenn einer der Operanden an der Position eine 1 enthält, enthält das Ergebnis an dieser Position auch eine 1, andernfalls ist das Ergebnis an dieser Position 0. 6
^ Exklusives ODER Wenn ein und nur ein Wert an einer beliebigen Position eine 1 enthält, dann enthält das Ergebnis an dieser Position eine 1, andernfalls ist das Ergebnis an dieser Position 0. 7
~ Ablehnung An der binären Darstellung des Werts eines Ausdrucks wird eine bitweise Negationsoperation durchgeführt. Jede Position, die im ursprünglichen Ausdruck eine 1 enthält, wird durch eine 0 ersetzt. Jede Position, die im ursprünglichen Ausdruck 0 enthält, wird zu 0 . Positive Zahlen beginnen bei 0, negative beginnen bei -1, also ~ n == -(n+1) . 14
Der Operator verschiebt die Bits des ersten Operanden um die Anzahl der Bitpositionen nach links, durch die Sekunde festgelegt Operand. Um die Positionen auf der rechten Seite zu füllen, werden Nullen verwendet. Gibt ein Ergebnis desselben Typs wie der linke Operand zurück. 11
>> Bitweise Verschiebung nach rechts Der Operator verschiebt die Bits des ersten Operanden um die Anzahl der Bitpositionen, die durch den zweiten Operanden festgelegt wurden, nach rechts. Außerhalb des Bereichs verschobene Ziffern werden entfernt. Das höchstwertige Bit (32.) bleibt unverändert, um das Vorzeichen des Ergebnisses beizubehalten. Wenn der erste Operand positiv ist, werden die höchstwertigen Bits des Ergebnisses mit Nullen aufgefüllt; Wenn der erste Operand negativ ist, werden die höchstwertigen Bits des Ergebnisses mit Einsen aufgefüllt. Das Verschieben eines Werts um eine Position nach rechts entspricht einer Division durch 2 (Verwerfen des Rests), und das Verschieben um zwei Positionen nach rechts entspricht einer Division durch 4 usw. 11
>>> Bitweise Rechtsverschiebung ohne Vorzeichen Der Operator verschiebt die Bits des ersten Operanden um die Anzahl der Bitpositionen, die durch den zweiten Operanden festgelegt wurden, nach rechts. Links werden Nullen hinzugefügt, unabhängig vom Vorzeichen des ersten Operanden. Außerhalb des Bereichs verschobene Ziffern werden entfernt. 11
var x = 9, y = 5, z = 2, s = -5, Ergebnis; // 9 entspricht 1001, 5 entspricht 0101 result = x & y; // gibt 1 zurück (entspricht 0001) result = x | y; // gibt 13 zurück (entspricht 1101) result = x ^ y; // gibt 12 zurück (entspricht 1100) result = ~ y; // gibt -6 zurück (entspricht 1100) Ergebnis = x<< y; // вернет 288 (эквивалентно 100100000) result = x >> z; // 2 zurückgeben (entspricht 10) result = s >>> z; // gibt 1073741822 zurück (entspricht 1111111111111111111111111111110)

7. String-Operatoren

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

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

8. Spezielle Operatoren

Tabelle 8. Spezielle Operatoren
Betreiber/Betrieb Beschreibung Eine Priorität
. Zugriff auf eine Immobilie Greift auf eine Eigenschaft eines Objekts zu. 15
,Mehrfache Berechnung Wertet mehrere unabhängige Ausdrücke aus, die in einer Zeile geschrieben sind. 1
Array-Indizierung Greift auf Array-Elemente oder Objekteigenschaften zu. 15
() Funktionsaufruf, Gruppierung Gruppiert Vorgänge oder ruft eine Funktion auf. 15
typeof Datentypdefinition Unärer Operator, gibt den Datentyp des Operanden zurück. 14
Instanz von Überprüfen des Typs eines Objekts 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 wahr, wenn das Objekt links eine Instanz der Klasse rechts ist, andernfalls falsch. 10
bei der Prüfung auf das Vorhandensein einer Immobilie Der linke Operand muss eine Zeichenfolge sein und der rechte Operand muss ein Array oder Objekt sein. Wenn der linke Wert eine Eigenschaft eines Objekts ist, ist das Ergebnis true . 10
neu Ein Objekt erstellen Der Operator erstellt ein neues Objekt mit undefinierten Eigenschaften und ruft dann die Konstruktorfunktion auf, um es zu initialisieren (übergibt Parameter). Kann auch zum Erstellen eines Arrays verwendet werden. 1
löschen Löschen Mit dem Operator können Sie eine Eigenschaft von einem Objekt oder ein Element aus einem Array entfernen. Gibt true zurück, wenn der Löschvorgang erfolgreich war, andernfalls false. Wenn ein Array-Element gelöscht wird, ändert sich seine Länge nicht. 14
void Definieren eines Ausdrucks ohne Rückgabewert Unärer Operator, verwirft den Wert des Operanden und gibt „underfined“ zurück. 14
?: Bedingter Ausdrucksoperator Mit dem ternären Operator können Sie einfache Verzweigungen organisieren. Der Ausdruck umfasst drei Operanden, der erste muss ein boolescher Wert sein oder in einen umgewandelt 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 der dritte. 3
document.write("Hallo Welt"); // zeigt den String an Hallo Welt i = 0, j = 1; // speichert Werte in Variablen function1(10, 5); // Funktionsaufruf function1 mit Parametern 10 und 5 var year = ; // erstellt ein Array mit Elementen typeof (a:1); // „Objekt“ zurückgeben var d = new Date(); // ein neues Objekt mit dem Date()-Konstruktor erstellen d exampleof Date; // true zurückgeben var mycar = (Marke: „Honda“, Modell: „Accord“, Jahr: 2005); „machen“ in mycar; // true zurückgeben var obj = new Object(); // erstellt ein leeres Objekt var food = ["Milch", "Brot", "Fleisch", "Olivenöl", "Käse"]; Essen löschen; // Entfernt das vierte Element aus dem Array food x > 10 ? x * 2: x / 2; // gibt x * 2 zurück, wenn x > 10, andernfalls x / 2

9. Kommentare in JavaScript

Einzeiliger Kommentar: Sie müssen dem Kommentartext die Symbole // voranstellen.

Zunächst kurz zu Ausdrücken in JavaScript.

JavaScript-Ausdrücke

JavaScript verfügt über Anweisungen und Ausdrücke.

Anweisungen geben keine Werte zurück.

Ausdrücke Stets einige Werte zurückgeben. Wenn der Interpreter einen Ausdruck sieht, wertet er seinen Wert aus und ersetzt den Ausdruck durch seinen Wert.

Ausdrücke können einfach oder zusammengesetzt sein. Einfache Ausdrücke umfassen keine anderen Ausdrücke.

Zu den einfachen Ausdrücken gehören:

  1. Bezeichner: someVar (Variablenname);
  2. Literale: „string“ oder 675 (Zahl oder numerisches Literal);
  3. Einige Schlüsselwörter wie dieses;

Wenn der Parser einen Bezeichner findet, muss er zunächst dessen Wert berechnen, also beispielsweise den Namen einer Variablen durch ihren Wert ersetzen.

Der Wert des Literals ist derselbe, wie er im Skriptcode geschrieben ist.

JavaScript-Operatoren und komplexe Ausdrücke

Operatoren werden verwendet, um mehrere einfache Ausdrücke zu einem komplexen zusammenzufassen.

Betreiber sind:

  • Unär (ein Operand).
  • Binär (zwei Operanden).
  • Ternärer Operator? in JavaScript (drei Operanden, es gibt nur einen ternären Operator).

Ein Operand ist ein einfacher Ausdruck, auf den ein Operator angewendet wird.

Beispielsweise ist der arithmetische Additionsoperator „+“ ein binärer Operator. Es summiert den linken und rechten Operanden und gibt die Summe zurück.

Var-Ziffer = 4 + 7;

Die Zuweisung erfolgt übrigens über den Zuweisungsoperator „=". Dieser Operator wertet den Wert des rechten Operanden aus und weist ihn dem linken Operanden zu.

In JavaScript hat unäres Plus nur einen Operanden. Unäres Plus ist kein arithmetischer Operator; es wandelt den Operanden in eine Zahl um.

Var myVar = "7"; document.write(typeof(myVar) + "
"); // Druckt den String myVar = +myVar; document.write(typeof(myVar) + "
"); // Gibt die Nummer im Dokument aus

Zunächst enthielt myVar die Zeichenfolge „7“, bei der es sich um ein Literal vom Typ „String“ und nicht um eine Zahl handelt. Mit dem unären Plusoperator haben wir ein String-Literal in ein numerisches umgewandelt.

Rechenoperationen

Arithmetische Operationen sind bekannte mathematische Operationen.

Möglicherweise bedarf der Operator % (Modulo) einer Erläuterung. 9 wird durch 5 mit einem Rest von 4 dividiert, und diesen Rest gibt dieser Operator zurück. Es wird auch Modulo genannt. Bei Verwendung von Ganzzahlen ist das Ergebnis dieses Operators ebenfalls eine Ganzzahl. Bei der Arbeit mit Gleitkommazahlen ist das Ergebnis eine Gleitkommazahl.

5.5 % 2.2 = 1.1

Bei der Durchführung arithmetischer Operationen ist zu beachten, dass diese bei falscher Ausführung zu folgenden Ergebnissen führen können:

  • NaN (Not a Number) ist keine Zahl.
  • Unendlichkeit – Unendlichkeit.

Folgendes bewirkt die Division durch Null:

Var myVar = 0 / 0; document.write("Der Wert der Variablen: " + myVar + ", ihr Typ: " + typeof(myVar) + "
");

Vergleichsoperationen

Vergleichsoperatoren werden zum Vergleichen von Ausdrücken verwendet. Ein Ausdruck mit einem bedingten Operator gibt einen booleschen Wert zurück – wahr oder falsch (wahr/falsch).

Vergleichsoperationen können auch mit Strings durchgeführt werden; dies wird in einer anderen Lektion besprochen. Die einzige Voraussetzung für ein korrektes Ergebnis ist die Übereinstimmung von Daten desselben Typs. Andernfalls versucht JavaScript, Daten von einem Typ in einen anderen zu konvertieren, was nicht immer möglich ist. Um Fehler zu vermeiden, vergleichen Sie Daten nur eines Typs.

Zuweisungsoperatoren

Das offensichtlichste Beispiel für einen Zuweisungsoperator ist die einfache Zuweisung (=). Dieser Operator (=) wird verwendet, um einer Variablen einen Wert zuzuweisen.

Es gibt aber auch eine Reihe von Zuweisungsoperatoren, bei denen es sich um Abkürzungen handelt.

Logische Operationen

Boolesche Operationen werden häufig mit dem if else-Konstrukt in JS verwendet. Anhand von Beispielen dieses Designs wird ihre Arbeit demonstriert. Aber zuerst eine Liste logischer Operatoren.

Nun einfache Beispiele:

If (true && true) document.write("Es funktioniert!
"); if (true || false) document.write("Es funktioniert!
"); if (!false) document.write("Es funktioniert!
");

Schauen wir uns diese Beispiele an:

Der logische UND-Operator (&&) gibt „true“ zurück, wenn beide Operanden wahr sind.

Der logische ODER-Operator (||) gibt „true“ zurück, wenn mindestens ein Operand wahr ist.

Der logische NOT-Operator (!) nimmt einen Operanden und kehrt den Wahr/Falsch-Wert um.

Unäre Operatoren

Unäre Operatoren sind Operatoren mit einem Operanden. Hier sind einige solcher Operatoren:

  • ++ - um 1 erhöhen (Inkrement). Es kann ein Präfix und ein Postfix sein, mehr dazu weiter unten.
  • -- - um 1 verringern (dekrementieren). Es kann ein Präfix und ein Postfix sein, mehr dazu weiter unten.
  • + - unäres Plus.
  • - - unäres Minus.

Unäres Minus

Ein unäres Minus kehrt das Vorzeichen eines Ausdrucks um. Wenn Sie beispielsweise -100 in ein Programm schreiben, wenden Sie einfach ein unäres Minus auf das Zahlenliteral 100 an.

Sie müssen genau verstehen, wie das unäre Minus funktioniert – es gibt den Wert des Operanden mit umgekehrtem Vorzeichen zurück. Hier ist ein Beispiel für die korrekte Verwendung eines unären Minus:

Var myVar = -100; document.write(-myVar + " – das unäre Minus hat funktioniert, aber die Variable auch = " + myVar + ".
"); myVar = -myVar; document.write("Jetzt variable = " + myVar + ".
");

Lassen Sie uns ein bedeutungsloses Beispiel für ein doppeltes unäres Minus geben. Ich denke, es wird für Bildungszwecke nützlich sein:

Var myVar = -100; document.write(--myVar + " ist ein Inkrement, kein doppeltes unäres Minus.
"); document.write("Now variable = " + myVar + ".
"); document.write(-(-myVar) + " und dies ist eine doppelte Verwendung des unären Minus.
");

Unäres Plus

Das unäre Plus führt keine mathematischen Operationen aus. Es wandelt ein Literal in einen numerischen Typ um.

Var myVar = "78687"; document.write(typeof(myVar) + ".
"); myVar = +myVar; document.write(typeof(myVar) + ".
");

Inkrementieren und Dekrementieren

Beim Programmieren müssen Sie häufig den Wert einer Variablen um eins erhöhen oder verringern. Dafür gibt es unäre Operatoren:

  • ++ - um 1 erhöhen (Inkrement).
  • -- - um 1 verringern (dekrementieren).

Im Gegensatz zu unären Plus- und Minuswerten ändern Inkrement und Dekrement den Wert der Variablen beim Aufruf.

Var myVar = 10; document.write(++myVar + ".
"); document.write(myVar + ".
");

Dekrementieren (--) funktioniert auf die gleiche Weise.

Schauen wir uns nun die Verwendung dieser Operatoren als Präfix und Postfix an.

  • ++myVar – Präfixerhöhung um 1.
  • myVar++ – Postfix-Inkrement um 1.

Der Unterschied ist dieser:

  • Bei der Präfixverwendung dieser Operatoren wird zunächst der Wert des unären Operators ausgewertet und das Ergebnis dann in einem Ausdruck verwendet.
  • Bei der Verwendung von Postfix wird zunächst der Ausdruck und dann der unäre Operator (++ oder --) ausgewertet.

Ein einfaches Beispiel hilft Ihnen, dies zu verstehen:

Var myVar = 10; document.write((++myVar + 5) + ".

"); var myVar = 10; document.write((myVar++ + 5) + ".
"); document.write("Variable = " + myVar + ".
");

Inkrement und Dekrement können nur mit Variablen verwendet werden; sie können nicht mit numerischen Literalen verwendet werden. Einfach ausgedrückt hat der ++7-Code einen Fehler im Skript ausgegeben.

Andere Betreiber

Es gibt weitere Operatoren in JavaScript:

  • Ternärer Operator (drei Operanden).

var a = 10; var b = (a>1) ? 100:200; Warnung(b);

Wenn der Zustand a>1 wahr, dann die Variable B Wert zuweisen 100 , andernfalls weisen Sie den Wert der Variablen b zu 200 .

Js Aufgabe 3_4. Code hinzufügen: 3 lokale Variablen werden mit deklariert Stichwort var. Es ist notwendig, der Variablen max den Wert des folgenden ternären Operators zuzuweisen: Wenn a größer als b ist, geben wir a zurück, andernfalls geben wir b zurück.
Code-Auszug:

wenn (a * b< 6) { result = "Мало"; } else { result = "Много"; }


Fragen zur Selbstkontrolle:

  1. Wie lautet die Syntax des ternären Operators?
  2. Wie viele Argumente hat der ternäre Operator?

Schalteroperator in Javascript - Schalter

Die Javascript-Switch-Anweisung wird verwendet, um eine Variable auf mehrere Werte zu testen:

Syntax:

switch (Variable oder Ausdruck) ( case option1: //..Anweisungsblock.. break case option2: //..Anweisungsblock.. break default: //..Anweisungsblock.. )

Der Wert einer Variablen oder eines Ausdrucks wird überprüft: in jedem Fall Einer der Werte wird überprüft. Wenn der Wert geeignet ist, wird der eine oder andere entsprechende Block von Operatoren ausgeführt Fall.

Der mit dem Dienstwort default beginnende Block kann weggelassen werden. Die Blockanweisungen werden ausgeführt, wenn keiner der aufgeführten Werte insgesamt vorhanden ist Fall ungeeignet.

Wichtig: Die break-Anweisung ist nach jedem betrachteten Variablenwert (nach jedem) erforderlich Fall); Wenn Sie es nicht verwenden, werden alle folgenden Anweisungen gedruckt

Vergleichen Sie mit dem Betreiber WENN:

var a = 2; switch(a) ( case 0: // if (a === 0) case 1: // if (a === 0) warning("Zero or one"); // then print... break; case 2: // if (a === 2) alarm("Two"); // dann zeigen wir... break; default: // else alarm("Many"); // sonst zeigen wir... )

Wie gruppiere ich mehrere Optionen?

Um dieselben Anweisungen auszuführen, ist es möglich, mehrere zu gruppieren Fall. Wie im Beispiel oben:

Fall 0: Fall 1: alarm("Null oder eins"); brechen; ...

Wenn a = 0 und a = 1, wird dieselbe Anweisung ausgeführt: alarm("Zero or one");

Beispiel 4: Fordern Sie den Benutzer auf, eine Farbe einzugeben. Ausgabeübersetzung an englische Sprache eingegebene Farbe. Für Farbe "Blau" Und "Blau" den gleichen Wert erzeugen.


✍ Lösung:
  • Erstellen Sie eine Webseite mit HTML-Skelett und Tag Skript.
  • Variable initialisieren Farbe
  • var color = prompt("Welche Farbe?" );

    var color = prompt("Welche Farbe?");

  • Überprüfen Sie den Wert einer Variablen mithilfe eines Konstrukts Schweiß, wobei für jeden Wert die entsprechende Übersetzung ausgegeben wird:
  • Schalter (Farbe) ( case "red" : alarm("red"); break; case "green": alarm("green"); break; // ...

    Wenn die Variable Farbe hat den Wert „rot“, dann Ausgabe an Modales FensterÜbersetzung - "rot" und verlassen Sie die Struktur (break;). Wenn die Variable Farbe den Wert „grün“ hat, dann die Übersetzung im modalen Fenster anzeigen – „grün“ und die Struktur verlassen (break;).

  • Für Blumen "Blau" Und "Blau" Führen Sie die Gruppierung durch:
  • // ... case „blue“: case „blue“: alarm(“blue“); brechen; // ...

    Wenn die Variable Farbe hat den Wert „blau“ oder variabel Farbe den Wert „blau“ hat, dann die Übersetzung im modalen Fenster anzeigen – „blau“ und die Struktur verlassen (break;).

  • Organisieren Sie die Ausgabe für die Farben, die nicht vom Programm bereitgestellt werden:
  • // ... Standard: alarm( „Zu dieser Farbe liegen uns keine Informationen vor“) ) // Endschalter

    // ... default: alarm("wir haben keine Informationen zu dieser Farbe") ) // Endschalter

  • Testen Sie das Skript in einem Browser.

Js Aufgabe 3_6. Suchen und beheben Sie Fehler im folgenden Codeausschnitt:

14 15 16 17 var number = prompt( „Geben Sie Nummer 1 oder 2 ein:“); switch (number) ( case "1" ( document.write ("One" ); ); break ; case "2" ( document.write ("Two" ); ); break ; default ( document.write ( „Sie haben einen anderen Wert als 1 und 2 eingegeben“) ; } ; }

var number = prompt("Geben Sie Nummer 1 oder 2 ein:"); switch (number) ( case "1" ( document.write("One"); ); break; case "2" ( document.write("Two"); ); break; default ( document.write("Du hast eingegeben anderer Wert als 1 und 2"); ); )


Js Aufgabe 3_7. Was wird auf dem Bildschirm angezeigt, wenn der folgende Code ausgeführt wird?:

1 2 3 4 5 6 7 8 9 10 11 12 13 var-Wert = "2" ; switch (Wert) ( case „1“ : case „2“ : case „3“ : document.write („Hello“ ); break ; case „4“ : case „5“ : document.write („World“ ); Standard: document.write ("Fehler"); )

var-Wert = „2“; switch (Wert) ( case „1“: case „2“: case „3“: document.write(“Hello“); break; case „4“: case „5“: document.write(“World“ ); Standard: document.write("Error"); )


Js Aufgabe 3_8. Bitten Sie den Benutzer um eine Zahl – die Anzahl der Krähen auf dem Ast. Abhängig von der eingegebenen Zahl (nicht mehr als 10) wird die Meldung angezeigt: - Sitzt auf einem Ast 1 Krähe- Sitzt auf einem Ast 4 Krähen- Sitzt auf einem Ast 10 Krähen

  1. Abhängig von der eingegebenen Zahl ändert sich die Endung des Wortes "Krähe".
  2. Verwenden Sie zur Überprüfung den Javascript-Switch-Operator.
  3. Speichern diese Seite im Ergebnisordner (es wird für die weitere Arbeit nützlich sein).


Fragen zur Selbstkontrolle:

  1. In welchem ​​Fall ist es ratsam als Bedingungsoperator Konstruktion nutzen schalten?
  2. Welchen Zweck hat der Standardblock in der Anweisung? schalten?
  3. Ist es notwendig, die break-Anweisung in einer Konstruktion zu verwenden? schalten?
  4. So gruppieren Sie Optionen mit mehreren Werten in einer Anweisung schalten?

Zyklische JavaScript-Operatoren – Für

Syntax:

for(anfänglicher Zählerwert; Bedingung; Zählerinkrement) ( //..Anweisungsblock.. )

Wichtig: Eine Schleife in Javascript wird verwendet, wenn im Voraus bekannt ist, wie oft zyklische Aktionen wiederholt werden sollen (wie viele Iterationen hat die Schleife).

  • Als Anfangswert des Iterationszählers wird ein Zuweisungsausdruck verwendet: zum Beispiel i=0 – der Schleifenzähler beginnt bei Null:
  • for(var i = 0; Bedingung; Zählerinkrement) ( //..Anweisungsblock.. )

  • Die Erhöhung des Zählers gibt den Schritt an, mit dem der Zähler erhöht werden soll: Sie gibt beispielsweise an, dass jede Iteration der Schleife mit einer Erhöhung um einhergeht 1 :
  • for(var i = 0; Bedingung; i++) ( //..Anweisungsblock.. )

  • Die Schleifenbedingung ist der Endwert des Zählers: i10 stoppt beispielsweise die Schleife:
  • for(var i = 0; i<10; i++) { //..блок операторов.. }

Schauen wir uns ein Beispiel für die Verwendung einer for-Schleife in Javascript an:

Beispiel 5: Drucken Sie eine Zahlenfolge 0 1 2 3 ... 9 , jede Ziffer steht in einer neuen Zeile. 0 1 2 ... 8 9


✍ Lösung:
  • Um eine Zahlenfolge anzuzeigen, verwenden wir einen for-Schleifenzähler, der seinen Wert ändern soll 0 Vor 9 entsprechend der Reihenfolge.
  • So für Anfangswert des Schleifenzählers Setzen Sie den Wert auf 0 ; als Zyklusbedingungen Legen Sie den Endwert fest - ii=9; Der Zählerschritt sollte gleich sein 1 (i++), da der Unterschied zwischen den Mitgliedern der Sequenz eins ist:
  • für (var i=0; i<10; i++) { document.write(i+"
    "); }

    Im Beispiel werden die Werte des Schleifenzählers auf dem Bildschirm angezeigt, da die Erhöhung des i++-Zählers entsprechend auf dem Bildschirm erscheint 0 1 2 3 ... 9 , wobei jede Ziffer in einer neuen Zeile beginnt (tag
    ).

  • Testen Sie das Skript in einem Browser.

Js Aufgabe 3_9. 1 Vor 15 .

  1. Verwenden Sie einen Schleifenzähler als Zahlenfolge für.
  2. Verwenden Sie für eine Addierervariable den Variablenbezeichner Summe.

Code-Auszug:

Für (var i=...;...;...)( sum = sum + ...; ) ...

Schleifenexit-Anweisungen brechen Und weitermachen in JavaScript. Operator Ausfahrt

Der Break-Operator unterbricht die Ausführung des gesamten Schleifenkörpers, d. h. Verlässt eine Schleife in Javascript.

Während die continue-Anweisung die Ausführung der aktuellen Iteration der Schleife unterbricht, setzt sie die Ausführung der Schleife jedoch ab der nächsten Iteration fort.

Schauen wir uns die Funktionsweise der Break- und Continue-Operatoren anhand eines Beispiels an:

Beispiel: Zerlegen Sie den Algorithmus des Codefragments. Was wird ausgegeben?

Code-Auszug:

1 2 3 4 5 6 für (var i= 0 ; i< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
" ); if (i== 8 ) break ; )

für (var i=0;i<10;i++) { if (i==4) continue; document.write(i+"
"); if (i==8) break; )


✍ Lösung:
  • Die dritte Zeile des Beispiels enthält eine Bedingung, aufgrund derer die Nummer 4 wird nicht angezeigt: Operator weitermachen fährt mit der nächsten Iteration der Schleife fort, ohne die aktuelle abzuschließen.
  • Zeile Nr. 5 verlässt die Schleife, aber gleichzeitig die Nummer 8 wird auf dem Bildschirm angezeigt, da die Ausgabeanweisung vor der Bedingung steht (in der 4. Zeile). Kennengelernt brechen, beendet der Interpreter die Schleife.
  • Das. Auf dem Bildschirm wird Folgendes angezeigt: 0 1 2 3 5 6 7 8 - Jede Ziffer steht in einer neuen Zeile.

Aufgabe Js 3_10. Drucken Sie die Summe aller ganzen Zahlen aus 1 Vor 15 , ohne Zahlen vom Gesamtbetrag 5 Und 7 .

Exit-Anweisung

Die Javasctipt-Sprache bietet einen Operator zum Beenden von Programmcode – den Exit-Operator.
Die häufigste Verwendung des Operators besteht darin, Benutzereingabefehler zu beseitigen.


Schauen wir uns ein Beispiel an:

Beispiel 6: Fordern Sie den Benutzer auf, eine Nummer einzugeben. Wenn es sich bei der eingegebenen Nummer nicht um eine Nummer handelt, wird eine Meldung angezeigt „Brauche eine Nummer!“ und stoppen Sie das Programm.


✍ Lösung:
  • Variable initialisieren Nummer Vom Benutzer im modalen Fenster eingegebener Wert:
  • var number = prompt("Geben Sie eine Zahl ein");

  • Überprüfen Sie mithilfe der parseInt-Funktion zum Konvertieren einer Zeichenfolge in eine Ganzzahl, ob der eingegebene Wert eine Zahl ist:
  • number=parseInt(number); // NaN zurückgeben – keine Zahl

    Wenn die eingegebene Zahl keine Zahl ist, gibt die Funktion den Wert NaN (aus dem Englischen) zurück. keine Zahl- keine Zahl).

  • Überprüfen Sie den Wert einer Variablen Nummer mit der isNaN-Funktion:
  • x = isNaN(Anzahl); // gibt true zurück, wenn der Wert nicht numerisch ist

    Die Funktion isNaN gibt den Wert zurück WAHR falls die Variable keine Zahl ist

  • Von die Regel der „Lügen“ Organisieren Sie die Überprüfung des Werts einer Variablen X. Wenn der Wert nicht numerisch ist, drucken Sie die entsprechende Notiz aus und beenden Sie das Programm:
  • if (x)( alarm("Anzahl erforderlich!"); exit; // Programm beenden)

  • Um das Programm fortzusetzen (wenn der eingegebene Wert eine Zahl war), zeigen Sie die folgende Eingabeaufforderung an:
  • Alert("Geben Sie die zweite Zahl ein");// Wenn Sie eine Nicht-Zahl eingeben, wird der Operator nicht ausgeführt

  • Testen Sie das Skript in einem Browser.

Fragen zur Selbstkontrolle:

  1. Listen Sie drei Schleifenparameter auf für und erklären Sie ihren Zweck.
  2. Welche Anweisungen werden verwendet, um eine Schleife zu verlassen und zu unterbrechen? Nennen Sie Beispiele für deren Verwendung.
  3. Was ist der Zweck des Betreibers? Ausfahrt?

Ist es möglich, mehrere Zähler in einem FOR zu haben?

Bei Verwendung ist eine interessante Arbeit mit der for-Schleife möglich gleichzeitig zwei Zähler in einer Schleife.
Schauen wir uns ein Beispiel an:

Beispiel 7: Drucken Sie mithilfe des Skripts die folgenden Variablen-Wert-Paare in drei Zeilen aus: i=0 j=2 i=1 j=3 i=2 j=4


✍ Lösung:
  • Organisieren Sie in der for-Schleife zwei Zähler: Zähler i, um die Sequenz auszugeben 0 1 2 , Zähler j für Sequenzausgabe 2 3 4 :
  • 1 2 3 für (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { }

    for(i=0, j=2; i<10, j<5; i++, j++) { }

    Jeder der drei Parameter der for-Schleife hat nun zwei Werte, die aufgelistet werden durch Kommata abgetrennt(zum Beispiel der erste Parameter mit zwei Werten: i=0, j=2). Die Parameter selbst werden aufgelistet durch Semikolons getrennt(;).

  • Um jede Zeile auszugeben, verwenden Sie das Tag
    :
  • 1 2 3 4 für (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i=" , i, "j=" , j) ; )

    for(i=0, j=2; i<10, j<5; i++, j++) { document.write("
    i=", i, "j=",j); )

Eine Seite im Handumdrehen erstellen: Wie geht das?

Bevor wir die nächste Aufgabe ausführen, schauen wir uns ein Beispiel an Dynamisches Erstellen einer HTML-Seite mit Javascript.

Beispiel 8:

  • Sie müssen auf einer Webseite basierend auf Benutzereingaben dynamisch Listen mit Aufzählungszeichen und Nummern generieren: Fordern Sie den Benutzer zur Eingabe auf Listenansicht(nummeriert (Nummer 1) oder markiert (Nummer 2)) und dann Anzahl der Listenelemente.
  • Zeigen Sie je nach Antwort Tags einer Liste mit Aufzählungszeichen oder einer nummerierten Liste mit der erforderlichen Anzahl von Elementen an.
  • Wenn ein nicht vorhandener Listentyp eingegeben wird, wird eine Meldung angezeigt „Geben Sie den richtigen Typ ein!“ und beenden Sie das Programm ().

Erinnern wir uns an die Tags:
Nummerierte Listen-Tags:

<ol > <li > <li > <li > </ol>

Tags für Aufzählungslisten:

var listType=prompt("Geben Sie „1“ ein – wenn es sich um eine Liste mit Aufzählungszeichen handelt, „2“ – wenn es sich um eine nummerierte Liste handelt“);

  • Überprüfen Sie den eingegebenen Wert: Für eine nummerierte Liste (Nummer 1) drucken Sie das Tag aus
      , für markiert (Nummer 2) - Tag
        . Wenn ein anderer Wert eingegeben wird, drucken Sie eine Notiz aus und beenden Sie das Programm:

            ") else ( Alert("Geben Sie den richtigen Typ ein"); Exit; )

          • Variable initialisieren kolvo Vom Benutzer im modalen Fenster eingegebener Wert:
          • var kolvo=prompt("Geben Sie die Anzahl der Punkte ein");

          • Um einen Zeichenfolgenwert in einen numerischen Wert umzuwandeln, verwenden Sie die Funktion parseInt:
          • für (var i=1; i<=kolvo; i++) document.write("");

          • Da Listen je nach Listentyp mit entsprechenden Tags abgeschlossen werden, drucken Sie die schließenden Tags aus:
          • if (listType== "1" ) document.write("" ) else if (listType== "2" ) document.write ("" ) ;

            if (listType=="1") document.write("

        ") else if (listType=="2") document.write("
      ");

    1. Testen Sie das Skript in einem Browser.
    2. Js-Aufgabe 3_11.
      Schreiben Sie ein Skript, das Tags anzeigt Eingang(Steuerelemente) unterschiedlicher Art, abhängig von der eingegebenen Anzahl:

      1 - Textfeld,
      2 - Taste,
      3 - Radio(schalten).

      Die Anzahl der angezeigten Tags sollte ebenfalls abgefragt werden.

      Erinnern wir uns an die Tags:

      Zu 1 - Textfeld: Für 2 - Taste: Für 3 - Radio:

      Beispielausgabe:

      Aufgabe Js 3_12. Zeichnen Sie ein 9x9-Schachbrett mit Javascript für Schleifen. Sie sollten die Tafel mit HTML-Tags für die Tabelle „zeichnen“:

      Erinnern wir uns an die Tags:

      <Tabellenrand = „1“ Breite = „30 %“ > <tr > <td >-</td> -</td> </tr> </Tabelle>

      --

      • Um 9 Linien zu zeichnen, müssen Sie eine äußere for-Schleife mit einem Zähler i organisieren.
      • Um 9 Zellen in jeder Zeile zu zeichnen, müssen Sie eine innere (verschachtelte) for-Schleife mit einem Zähler j organisieren.
      • Zum Rendern von Zellen- und Zeilen-Tags sollten Sie die Methode document.write verwenden.

      Ergebnis:

      Zusätzlich:

      1. Zeigen Sie die Multiplikationstabelle in den Tabellenzellen mithilfe von Schleifenzählern (i und j) an.
      2. Erste Zeile und erste Spalte mit rotem Hintergrund anzeigen (Tabellenzellenattribut bgcolor):
        <td bgcolor = "red" >-</td>

        -

      Ergebnis:


      Fragen zur Selbstkontrolle:

      1. Erklären Sie, was das Konzept der „dynamischen Seitenerstellung“ bedeutet.
      2. Welches Sprachkonstrukt wird beim dynamischen Aufbau einer Seite am häufigsten verwendet?

      zyklische Javascript-Operatoren - while

      Die Syntax der while-Anweisung lautet:

      while (condition) ( //..Anweisungsblock.. );

      Beispiel: Zweierpotenzen bis zum Dialogfeld anzeigen 1000 (2, 4, 8 ... 512). Verwenden Sie die Methode „alert()“.


      ✍ Lösung:
      • Skriptauflistung:
      • 1 2 3 4 5 var a = 1 ; während ein< 1000 ) { a*= 2 ; alert(a) ; }

        var a = 1; während ein< 1000){ a*=2; alert(a); }

        a*=2 → die zusammengesetzte Zuweisungsoperation wurde verwendet: ein Produkt kombiniert mit einer Zuweisung, d. h. das Gleiche wie a = a*2

      • Testen Sie das Ergebnis in Ihrem Browser.

      Wie funktionieren Break- und Continue-Anweisungen in einer While-Schleife?

      Beispiel:

      var a = 1 ; während ein< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      var a = 1; während ein< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      Es werden Zweierpotenzen bis ausgegeben 128 inklusive, und der Wert 64 wird vermisst werden. Diese. In den Dialogfeldern sehen wir: 2 4 8 16 32 128

      Aufgabe Js 3_13. Welche Werte gibt das folgende Code-Snippet aus?

      var counter = 5; while(Zähler< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      Aufgabe Js 3_14. Schreiben Sie einen Baucode X bis zum Grad j mit einer while-Schleife. Fragen Sie die Werte von Variablen ab und zeigen Sie das Ergebnis mit „alert()“ an.

      Vervollständigen Sie den Code:

      1 2 3 4 5 6 7 8 9 var x = ...; var y = ...; Zähler = 1 ; Zahl= x; while (...) ( chislo= x* ...; counter= ...; ) alarm(chislo) ;

      var x = ...; var y = ...; Zähler = 1; Zahl=x; while (...)( chislo=x*...; counter=...; ) alarm(chislo);

      A Korrigieren Sie den Fehler im Programm zum Ermitteln der Fakultät einer Zahl:

      1 2 3 4 5 6 7 8 9 10 11 12 13 var counter = prompt("Geben Sie eine Zahl ein" ); var Fakultät = 1 ; document.write( „Fakultät einer Zahl:“+ Zähler + "! = " ); do (if (Zähler == 0) (Fakultät = 1; Unterbrechung;) Fakultät = Fakultät / Zähler; Zähler = Zähler + 1;) while (Zähler > 0); document.write(Fakultät);

      var counter = prompt("Geben Sie eine Zahl ein"); var Fakultät = 1; document.write("Fakultät einer Zahl: " + counter + "! = "); do ( if (Zähler == 0) ( Fakultät = 1; Pause; ) Fakultät = Fakultät / Zähler; Zähler = Zähler + 1; ) while (Zähler > 0); document.write(Fakultät);


      Aufgabe Js 3_16.Ändern Sie das Programm, damit der Benutzer einen Namen eingeben kann:

      Zur Eingabe eines Benutzernamens auffordern, bis der Benutzer tatsächlich einen Namen eingibt (d. h. das Feld tatsächlich ausgefüllt ist und die Abbruchtaste nicht gedrückt wird). Wenn der Name eingegeben ist, dann Anzeige „Hallo, Name!“. dokumentieren.

      Wie finde ich Fehler in Javascript?

      In manchen Fällen funktioniert der Code auf der Seite aus unbekannten Gründen nicht. Wo nach dem Fehler suchen? In solchen Fällen können Sie den try..catch-Operator verwenden.

      Die try..catch-Anweisung versucht, einen Code auszuführen. Wenn im Code ein Fehler vorliegt, kann der Fehler auf dem Bildschirm angezeigt werden.
      Der Fehler wird im e.message-Objekt gespeichert.

      Schauen wir uns die Arbeit des Betreibers anhand eines Beispiels an:

      Beispiel: Schreiben Sie eine Fehleranweisung in das Programm. Überprüfen Sie den vermeintlich fehlerhaften Code auf Fehler: Wenn der Code fehlerhaft ist, wird eine Meldung angezeigt „Fehlerbehandlung: Fehlername“. Nachdem Sie die fehlerhafte Anweisung überprüft haben, zeigen Sie die Meldung an, unabhängig davon, ob ein Fehler im Code vorliegt „letzte Maßnahmen“


      ✍ Lösung:
      • Als Fehlermeldung verwenden wir die Methode prompt(), die mit einem Fehler geschrieben wurde: prompt(). Schließen Sie die Fehlermeldung in einen Try-Block ein:
      • alarm("before"); try ( promt("enter a number"); // Anweisung mit Fehler )

        Versuchen Sie es mit Englisch - „try“, also setzen wir die try-Anweisung vor einen Codeabschnitt, der möglicherweise einen Fehler enthält (in unserem Fall liegt tatsächlich ein Fehler vor).

      • Die Fehlermeldung sollte in einem Catch-Block platziert werden:
      • 6 7 8 9 fangen (e) ( alarm( "Fehlerbehandlung: "+ E-Mail); )

        Catch(e) ( Alert("Fehlerbehandlung: "+e.message); )

        Liegt tatsächlich ein Fehler vor, speichert der Catch-Operator diesen Fehler im e-Objekt. Zukünftig kann es in einem Dialogfeld angezeigt werden – e.message.

      • Platzieren Sie die letzte Nachricht, die unabhängig davon ausgegeben werden muss, ob ein Fehler im Code vorliegt, in einem final-Block:
      • schließlich ( alarm("endgültige Aktionen"); ) alarm("after");

        Wenn immer noch ein Fehler vorliegt, führt der Interpreter nach dem Drucken in unserem Beispiel den Catch-Block aus und führt ihn dann schließlich (von Englisch „completion“, „finally“) aus, der immer ausgeführt wird, unabhängig davon, ob ob ein Fehler vorliegt oder nicht. Auch wenn im Catch-Block ein Fehler vorliegt.

      Wichtig: Der „finally“-Block im Konstrukt ist optional.


      Aufgabe Js 3_17. Folgen Sie dem obigen Beispiel mit den folgenden Änderungen:

    3. Entfernen Sie den „finally“-Block und überwachen Sie die Ausführung des Codes.
    4. Ersetzen Sie den fehlerhaften Operator durch einen fehlerfreien und sehen Sie, was das Ergebnis ist.
    5. Zusammenfassung:

      Die Lektion behandelte die folgenden Javascript-Sprachoperatoren und -konstrukte:

      Bedingte Javascript-Anweisungen:

    6. if-Anweisung
    7. Bedingte Zuweisung (ternärer Operator)
    8. switch-Anweisung
    9. Schleifenoperatoren:

    10. for-Schleife
    11. while-Schleife
    12. do...while-Schleife
    13. For...in-Schleife
    14. Abschlussaufgabe Js 3_18.
      Erstellen Sie ein Spiel für zwei:

      1. Das Programm fordert den ersten Spieler auf, eine Zahl einzugeben 1 Vor 100 (Der zweite Spieler sieht die eingegebene Zahl nicht). Der zweite Spieler wird dann gebeten, die eingegebene Zahl zu erraten. Als Antwort wird eine Nachricht angezeigt "wenige" oder "viel" abhängig von der eingegebenen Antwort. Wenn der Spieler richtig geraten hat, wird eine Gratulation angezeigt. Wenn er nicht rät, geht das Spiel weiter (bis die Zahl tatsächlich erraten wird).
      2. Zählen Sie die Anzahl der Versuche und geben Sie ein Ergebnis aus, wenn die Zahl gelöst ist.


      Fragen zur Selbstkontrolle:

      1. Wann ist es sinnvoll, eine For In-Schleife zu verwenden? Geben Sie ein Beispiel für seine Verwendung.
      2. Was ist der Zweck der try..catch-Anweisung?
      3. Erklären Sie den Zweck jedes try..catch-Anweisungsblocks.


  • Freunden erzählen