JavaScript - Bedingte und boolesche Operatoren. Beispiele für bedingte Anweisungen von Jquery elseif

In diesem Artikel werden wir uns die bedingten und logischen Operatoren der JavaScript-Sprache ansehen.

Bedingte JavaScript-Anweisungen

Bedingte Aussagen sind Operatoren der JavaScript-Sprache (ECMAScript), die es Ihnen je nach Bedingung ermöglichen, eine oder mehrere spezifische Anweisungen auszuführen.

Formen bedingter Anweisungen in JavaScript:

  • bedingte if-Anweisung (mit einer Verzweigung);
  • Bedingungsoperator if...else (mit zwei Zweigen);
  • else if... bedingte Anweisung (mit mehreren Verzweigungen);
  • ternärer Operator (?: );
  • Switch-Anweisung.

Bedingte if-Anweisung

Syntax der if-Anweisung:

If (Bedingung)-Anweisung

Die bedingte if-Anweisung besteht aus:

  • Stichwort wenn ;
  • Bedingungen (Ausdrücke in Klammern), die wahr oder falsch sein müssen (oder in einen dieser Werte umgewandelt werden);
  • Anweisungen zu befolgen wenn die Bedingung wahr ist oder darauf gecastet wird.

Zum Beispiel:

Wenn (wahr) Anzahl = 4;

Dieses Beispiel verwendet true als Bedingung. Das bedeutet, dass die Anweisung count = 4 immer ausgeführt wird. Dieses Beispiel nur gegeben, um zu erklären, wie die if-Anweisung funktioniert, weil es ist ohne jeden Sinn.

Lassen Sie uns beispielsweise den Wert der Variablen votes um 1 erhöhen, wenn sie (ihr Typ) eine Zahl ist:

If (typeof votes === "number") votes++;

Wenn Sie mehrere Anweisungen ausführen müssen, müssen diese in geschweifte Klammern gesetzt werden:

If (typeof votes === "number") ( votes++; console.log("Number of votes: " + votes); )

If (typeof votes === "number") ( votes++; )

if...else-Anweisung

Die if...else-Anweisung wird verwendet, wenn bestimmte Anweisungen ausgeführt werden müssen, wenn eine Bedingung wahr ist, und andere, wenn eine Bedingung falsch ist.

Syntax:

If (Bedingung) ( eine oder mehrere Anweisungen (auszuführen, wenn Bedingung wahr ist oder in wahr umgewandelt wird) ) else ( eine oder mehrere Anweisungen (auszuführen, wenn Bedingung falsch ist oder in falsch umgewandelt wird) )

Lassen Sie uns beispielsweise eine Nachricht an die Konsole ausgeben, ob die Zahl gerade ist oder nicht:

If (Zahl % 2) ( console.log("Die Zahl ist ungerade!"); ) else ( console.log("Die Zahl ist gerade!"); )

Regel zum Umwandeln einer Bedingung in wahr oder falsch

Wenn der Ausdruck in der Bedingung einer if-Anweisung nicht gleich true oder false ist, wandelt JavaScript ihn in einen dieser Werte um. Er führt diese Aktion mit Hilfe der sogenannten „Lügenregel“ durch.

Die Bedeutung dieser Regel: jeder Ausdruck ist wahr, außer den folgenden Werten:

  • falsch (falsch);
  • "" oder "" (leerer String);
  • NaN (spezieller numerischer Datentyp „keine Zahl“);
  • 0 (Zahl "Null");
  • null ("leerer" Wert);
  • undefiniert ("undefinierter" Wert).

Lassen Sie uns beispielsweise eine Willkommensnachricht an die Browserkonsole ausgeben, je nachdem, welcher Wert in der Variable nameUser gespeichert ist:

If (nameUser) ( console.log("Hallo, " + name + "!"); ) else ( console.log("Hallo, Gast!"); )

Wenn die Variable nameUser einen leeren String enthält, wird sie gemäß der Lügenregel auf den Wert false gecastet. Daher wird in der Konsole die Meldung „Hi, guest!“ angezeigt. .

Und wenn zum Beispiel die Variable nameUser den String „Timur“ enthält, dann wird der Ausdruck in der Bedingung auf true gecastet. Als Ergebnis zeigt die Konsole die Nachricht "Hello, Timur!" .

else if... Anweisung (mehrere Bedingungen)

Syntax:

If (Bedingung1) (Anweisungen 1) Else If (Bedingung2) (Anweisungen 2) Else If (Bedingung3) (Anweisungen 3 //... ) Else If (BedingungN) (Anweisungen N) Else (Auszuführende Anweisungen, wenn keine von die Bedingungen nicht wahr sind oder nicht auf diesen Wert gecastet wurden)

Bedingter (ternärer) Operator (?:)

Ternärer Operator ist ein JavaScript-Operator, der verwendet werden kann, wenn es erforderlich ist, je nach Bedingung einen von zwei gegebenen Ausdrücken auszuführen.

Syntax:

Bedingung? Ausdruck1: Ausdruck2

Der ternäre Operator besteht aus drei Operanden, die durch die Symbole? und: . Die Bedingung des ternären Operators wird im ersten Operanden angegeben. Es kann auch in Klammern eingeschlossen werden. Wenn die Bedingung wahr ist oder auf diesen Wert gecastet wird, wird expression1 ausgeführt, andernfalls wird expression2 ausgeführt.

Zum Beispiel:

(Zahl > 10) ? console.log("Die Zahl ist größer als 10!"): console.log("Die Zahl ist kleiner oder gleich 10");

JavaScript erlaubt mehrere ternäre Operatoren (?:):

Var dayNumber = new Date().getDay(); day = (dayNumber === 0) ? "Sonntag" : (dayNumber === 1) ? "Montag" : (dayNumber === 2) ? "Dienstag" : (dayNumber === 3) ? "Mittwoch" : (dayNumber === 4) ? "Donnerstag" : (dayNumber === 5) ? "Freitag" : (dayNumber === 6) ? „Samstag“ : „Unbekannter Wochentag“; console.log("Heute ist " + day.toLowerCase() + ".");

Das obige Beispiel, aber mit mehreren if...else-Anweisungen:

Var dayNumber = new Date().getDay(); if (dayNumber === 0) ( day = "Sunday"; ) else if (dayNumber === 1) ( day = "Monday"; ) else if (dayNumber === 2) ( day = "Dienstag"; ) else if (dayNumber === 3) ( day = "Wednesday"; ) else if (dayNumber === 4) ( day = "Donnerstag"; ) else if (dayNumber === 5) ( day = "Friday"; ) else if (dayNumber === 6) ( day = "Samstag"; ) else ( day = "Unbekannter Wochentag"; ) console.log("Heute ist " + day.toLowerCase() + ".") ;

Switch-Anweisung

Die switch-Anweisung ist so konzipiert, dass sie abhängig vom Wert des Ausdrucks eine von mehreren Versionen der Anweisungen ausführt. Die Wahl der einen oder anderen Option wird durch die strikte Gleichheit des Ergebnisses des Ausdrucks mit dem Wert des Falls ( case ) bestimmt.

Syntax der Switch-Anweisung:

Switch (Ausdruck) ( case value1: // ... Anweisungen, die ausgeführt werden, wenn das Ergebnis des Ausdrucks "value1" ist break; // optionale Anweisung (wenn nicht verwendet, wird die nächste switch-Anweisung ausgeführt) case value2 : // ... Anweisungen, die ausgeführt werden, wenn der Ausdruck zu "value2" ausgewertet wird break; // optionale Anweisung (wenn sie nicht verwendet wird, wird der nächste switch-Anweisungsbefehl ausgeführt) // ... case valueN: / / ... Anweisungen, die ausgeführt werden, wenn das Ergebnis des Ausdrucks "valueN" ist break; // optionale Anweisung (wenn sie nicht verwendet wird, wird der nächste Befehl der switch-Anweisung ausgeführt) default: // Anweisungen, die ausgeführt werden ausgeführt werden, wenn das Ergebnis des Ausdrucks nicht gleich mehr als einem der Werte ist)

Das Standardschlüsselwort ist optional. Es wird verwendet, wenn es notwendig ist, Anweisungen anzugeben, die ausgeführt werden sollen, wenn das Ergebnis eines Ausdrucks keinem Fallwert entspricht.

Die break-Anweisung ist optional. Es soll die Ausführung der switch-Anweisung unterbrechen und die Kontrolle an die darauffolgende Anweisung übertragen.

Lassen Sie uns zum Beispiel eine Nachricht in der Browserkonsole über die Anzahl der Süßigkeiten anzeigen:

Var countCandyBoys = 1, countCandyGirls = 2, Nachricht; switch (countCandyBoys + countCandyGirls) (Fall 1: Nachricht = "Eine Süßigkeit"; Pause; Fall 2: Fall 3: Nachricht = "Zwei oder drei Süßigkeiten"; Pause; Fall 4: Nachricht = "Vier Süßigkeiten"; Pause; Standard: message = "Nicht eins, nicht zwei, nicht drei oder vier Bonbons"; ) // Nachricht auf der Konsole ausgeben console.log(message);

Im obigen Beispiel ist der ausgewertete Ausdruck 3. Daher werden die Anweisungen message = "Two or three candies" und break ausgeführt. Die break-Anweisung unterbricht die weitere Ausführung der switch-Anweisung und übergibt die Kontrolle an die nachfolgende Anweisung, d. h. Konsole.log (Nachricht) . Es wird eine Nachricht an die Konsole ausgegeben "Zwei oder drei Süßigkeiten".

Lassen Sie uns beispielsweise den aktuellen Wochentag in der Konsole anzeigen:

var tag = ""; switch(new Date().getDay()) ( Fall 0: Tag = "Sonntag"; Pause; Fall 1: Tag = "Montag"; Pause; Fall 2: Tag = "Dienstag"; Pause; Fall 3: Tag = "Mittwoch"; Pause; Fall 4: Tag = "Donnerstag"; Pause; Fall 5: Tag = "Freitag"; Pause; Fall 6: Tag = "Samstag"; Pause; Standard: Tag = "Unbekannter Wochentag" ; ) console.log("Heute ist " + day.toLowerCase() + ".");

Ein Beispiel, das die break-Anweisung nicht verwendet:

varresult = "Erfolg"; switch (Ergebnis) ( case "success": console.log("Success!"); case "invalidCaptcha": console.log("Ungültiges Captcha!"); default: console.log("Error!"); )

In diesem Beispiel ist der Ausdruck der switch-Anweisung gleich success . Daher wird die Anweisung console.log("Erfolg!") ausgeführt, die die Meldung "Erfolg!" ausgibt. zur Konsole. Da danach aber keine break-Anweisung folgt, wird die Skriptausführung in der nächsten Variante fortgesetzt. Somit werden die Anweisungen ausgeführt, bis die Unterbrechung auf dem Pfad auftritt oder das Ende der switch-Anweisung erreicht ist. Als Ergebnis der Ausführung dieses Beispiels werden 3 Meldungen in der Konsole angezeigt: "Success!" , "Falsches Captcha!" und "Fehler!" .

In einigen Fällen kann dieses Verhalten erforderlich sein, in diesem Fall jedoch nicht. Hier liegt nur ein Fehler vor.

Korrigiertes Beispiel:

varresult = "Erfolg"; switch (Ergebnis) ( case "success": console.log("Success!"); break; case "invalidCaptcha": console.log("Ungültiges Captcha!"); break; default: console.log("Error!" ); )

Logische Operatoren

JavaScript unterscheidet zwischen folgenden logischen Operatoren:

  • && - logisches "UND";
  • || - logisches "ODER";
  • ! -logisches "NICHT".

Wenn drin Boolescher Ausdruck operand1 && operand2 boolesche Werte verwendet werden, dann ist das Ergebnis dieses Ausdrucks wahr, wenn jeder von ihnen wahr ist ; andernfalls ist der Wert dieses Ausdrucks false .

Falsch && falsch // falsch wahr && falsch // falsch falsch && wahr // falsch wahr && wahr // wahr

Wenn der boolesche Ausdruck operand1 && operand2 nicht-boolesche Werte verwendet, dann ist das Ergebnis dieses Ausdrucks operand1, wenn es in false umgewandelt werden kann; andernfalls ist das Ergebnis dieses Ausdrucks operand2 .

5 && 0 // 0 1 && 5 // 5 "string" && undefined // undefined "string1" && "string2" // "string2"

Wenn im logischen Ausdruck operand1 || operand2 boolesche Werte verwendet werden, dann ist das Ergebnis dieses Ausdrucks wahr, wenn mindestens einer von ihnen wahr ist ; andernfalls ist der Wert dieses Ausdrucks false .

falsch || falsch // falsch wahr || falsch // wahr falsch || wahr // wahr wahr || Wahr, wahr

Wenn im logischen Ausdruck operand1 || operand2 verwendet nicht-boolesche Werte, dann ist das Ergebnis dieses Ausdrucks operand1, wenn es in true umgewandelt werden kann; andernfalls ist das Ergebnis dieses Ausdrucks operand2 .

5 || 0 // 5 1 || 5 // 1 "Zeile" || undefiniert // "Zeichenfolge" "Zeichenfolge1" || "Linie2" // "Linie1"

Der boolesche Ausdruck!operand1 ergibt wahr, wenn operand1 falsch ist, oder kann in diesen Wert umgewandelt werden; andernfalls wird dieser Ausdruck zu false ausgewertet.

False // true !true // false !"string" // false !5 // false"

Bedingter Operator ermöglicht es Ihnen, einen bestimmten Codeblock abhängig vom Ergebnis der Auswertung des angegebenen Ausdrucks - Bedingung zu überspringen oder auszuführen. Wir können sagen, dass die bedingte Anweisung der Entscheidungspunkt im Programm ist, manchmal wird sie auch als Verzweigungsanweisung bezeichnet. Wenn wir uns vorstellen, dass das Programm eine Straße ist, und PHP-Interpreter Geht ein Reisender darauf entlang, dann können die Bedingungsanweisungen als Kreuzungen betrachtet werden, an denen der Programmcode in zwei oder mehr Straßen verzweigt, und an solchen Kreuzungen muss der Interpreter wählen, auf welcher Straße er sich fortbewegt.

if-Anweisung

Die if-Anweisung ist die einfachste der Verzweigungsanweisungen.

Syntax der if-Anweisung:

Die if-Anweisung wertet zuerst den in Klammern angegebenen bedingten Ausdruck aus, das Ergebnis dieses Ausdrucks ist ein boolescher Wert. Wenn das Ergebnis wahr (true) ist, wird die Anweisung ausgeführt. Wenn der Ausdruck als falsch ausgewertet wird, wird die Anweisung nicht ausgeführt. Als Bedingung kann ein beliebig komplexer Ausdruck verwendet werden.

Wenn im Körper der if-Anweisung nur eine Anweisung verwendet wird, ist es möglich, aber nicht notwendig, sie in geschweifte Klammern einzuschließen. Wenn Sie jedoch mehr als eine Anweisung im Körper der if-Anweisung ausführen möchten, sondern mehrere, dann müssen diese mehreren Anweisungen in geschweifte Klammern eingeschlossen werden. Beachten Sie, dass auf die schließende Klammer kein Semikolon folgen sollte.

Der folgende Code demonstriert die Verwendung der if-Anweisung:

if-Anweisungen können in anderen if-Anweisungen verschachtelt werden:

beachten letztes Beispiel: Die Anweisung muss nicht genau unter die if-Anweisung geschrieben werden, wenn die Anweisung nicht groß ist, kann sie in einer Zeile geschrieben werden.

wenn sonst Anweisung

Und so haben wir gelernt, dass Sie mit der if-Anweisung Anweisungen ausführen können, wenn die Bedingung wahr ist. Wenn die Bedingung falsch ist, wird keine Aktion ausgeführt. Es ist jedoch oft erforderlich, einige Anweisungen auszuführen, wenn eine bestimmte Bedingung wahr ist, und andere Anweisungen, wenn die Bedingung falsch ist. Für solche Fälle wird if-else-Verzweigung verwendet. Es besteht aus einer if-Anweisung gefolgt von einem Anweisungsblock und einem else-Schlüsselwort gefolgt von einem weiteren Anweisungsblock.

Die Syntax der if else-Anweisung lautet:

Die else-Anweisung ist optional. Der nach dem else stehende Anweisungsblock wird standardmäßig ausgeführt, d.h. wenn der bedingte Ausdruck in if zu false ausgewertet wird. Die else-Anweisung kann nicht getrennt von der if-Anweisung verwendet werden. Der else-Block sollte nur nach der if-Anweisung platziert werden, er kann als Standardaktion betrachtet werden.

Wenn wir unser vorheriges Beispiel ein wenig modifizieren, können wir sehen, wie die if else-Anweisung funktioniert, wenn die Bedingung als falsch ausgewertet wird:

Die if else-Anweisung kann verschachtelt werden. Solche verschachtelten Bedingungsanweisungen sind in der Praxis durchaus üblich. Eine if-Anweisung ist verschachtelt, wenn sie in einem anderen if- oder else-Block verschachtelt ist. Wenn der Code mehrere if-Anweisungen hintereinander verwendet, dann bezieht sich else immer auf das nächste if:

Das letzte Else gilt nicht für if($a) , da es nicht in ist Innengerät, also erhält derjenige, der ihm am nächsten ist, if($i) . Die else-Anweisung innerhalb des Blocks ist mit if($b) verwandt, weil if diesem am nächsten kommt.

elseif/else if konstruieren

Die if / else-Anweisung wertet den Wert des Bedingungsausdrucks aus und führt das eine oder andere Fragment aus Programmcode. Was aber, wenn eines der vielen Fragmente ausgeführt werden muss? Wenn Sie mehrere Bedingungen hintereinander prüfen müssen, dann eignet sich dafür das elseif- oder else if-Konstrukt (es handelt sich um dasselbe Konstrukt, nur anders geschrieben). Technisch gesehen ist es kein eigenständiges PHP-Konstrukt – es ist nur ein gängiger Programmierstil, bei dem wiederholte if/else-Anweisungen verwendet werden. Sie können damit zusätzliche Bedingungen testen, bis eine wahre gefunden oder ein else-Block erreicht wird. elseif/else if konstruieren muss nach der if-Anweisung und davor stehen sonst Aussage, wenn es einen gibt.

Hier werden drei Bedingungen geprüft und je nach Wert der Variablen $username unterschiedliche Aktionen ausgeführt.

Tatsächlich ist an diesem Fragment nichts Besonderes. Es ist nur eine Folge von if-Anweisungen, wobei jede if-Anweisung Teil des else-Konstrukts des vorherigen if ist. Für diejenigen, die dieser Form der Notation zum ersten Mal begegnet sind und ihnen nicht ganz klar ist, wie sie funktioniert, werden wir dasselbe Beispiel umschreiben, nur in einer äquivalenten syntaktischen Form, die die Verschachtelung von Strukturen vollständig zeigt:

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

Wenn Bedingung a>1 wahr, dann die Variable b Wert zuweisen 100 , andernfalls wird der Variablen b der Wert zugewiesen 200 .

Aufgabe Js 3_4. Ergänzen Sie den Code: 3 lokale Variablen werden mit dem Schlüsselwort var deklariert. Der max-Variablen muss der Wert des folgenden ternären Operators zugewiesen werden: Wenn a größer als b ist, dann gib a zurück, andernfalls gib 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 ein ternärer Operator?

Switch-Anweisung in Javascript - switch

Die Javascript-Anweisung switch dient dazu, 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 each Fall Einer der Werte wird überprüft, bei einem passenden Wert wird der eine oder andere Block von Anweisungen ausgeführt, der dem angegebenen entspricht Fall.

Der mit dem Dienstwort default beginnende Block kann weggelassen werden. Blockanweisungen werden ausgeführt, wenn keiner der aufgelisteten Werte in allen ist Fall ungeeignet.

Wichtig: Die break-Anweisung ist nach jedem betrachteten Wert der Variablen erforderlich (nach jedem Fall); Wenn es nicht verwendet wird, werden alle folgenden Anweisungen angezeigt

Vergleichen Sie mit Betreiber WENN:

Var a = 2; switch(a) ( case 0: // if (a === 0) case 1: // if (a === 0) alert("Zero or one"); // then output... break; case 2: // if (a === 2) alert("Two"); // then output... break; default: // else alert("Many"); // sonst output... )

Wie kann man mehrere Optionen gruppieren?

Um dieselben Anweisungen auszuführen, können mehrere gruppiert werden Fall. Wie im obigen Beispiel:

Fall 0: Fall 1: Alarm ("Null oder Eins"); Unterbrechung; ...

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

Beispiel 4: Bitten Sie den Benutzer, eine Farbe einzugeben. Übersetzung senden an englische Sprache eingegebene Farbe. Für Farbe "blau" und "blau" gleichen Wert produzieren.


✍ 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 mit einem Konstrukt Schalter, wobei für jeden Wert die entsprechende Übersetzung ausgegeben wird:
  • switch (color) ( case "red" : alert("red"); break; case "green": alert("green"); break; // ...

    Wenn die Variable Farbe den Wert "rot" hat, dann ausgegeben an modales FensterÜbersetzung - "rot" und verlassen Sie die Konstruktion (Pause;). Wenn die Variable Farbe den Wert "grün" hat, dann zeige die Übersetzung - "grün" im Modalfenster an und beende die Konstruktion (break;).

  • Für Blumen "blau" und "blau" mach die Gruppierung:
  • // ... case "blue": case "blue": alert("blue"); Unterbrechung; // ...

    Wenn die Variable Farbe hat den Wert "blau" oder variabel Farbe den Wert "blue" hat, dann zeige die Übersetzung - "blue" im Modalfenster an und beende die Konstruktion (break;).

  • Organisieren Sie die Ausgabe für die Farben, die nicht vom Programm bereitgestellt werden:
  • // ... Standard : Alarm ( "Wir haben keine Informationen für diese Farbe") ) // Endschalter

    // ... default: alert("y we have no information on this color") ) // end of switch

  • Testen Sie das Skript in einem Browser.

Aufgabe Js 3_6. Suchen und beheben Sie Fehler im folgenden Code-Snippet:

14 15 16 17 Varnumber = Eingabeaufforderung ( "Geben Sie Nummer 1 oder 2 ein:") ; switch (number) ( case "1" ( document.write ("Eins") ; ) ; break ; case "2" ( document.write ("Zwei" ) ; ) ; 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 Wert anders als 1 und 2"); ); )


Aufgabe Js 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 (value) ( ​​case "1" : case "2" : case "3" : document.write ("Hallo") ; break ; case "4" : case "5" : document.write ("World" ) ; Standard : document.write("Fehler" ) ; )

var-Wert = "2"; switch (value) ( ​​case "1": case "2": case "3": document.write("Hallo"); break; case "4": case "5": document.write("World" ); Standard: document.write("Fehler"); )


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

  1. Je nach eingegebener Zahl ändert sich die Endung des Wortes. "Krähe".
  2. Verwenden Sie zur Überprüfung die Javascript-Switch-Anweisung.
  3. sparen diese Seite im Ergebnisordner (es wird für die weitere Arbeit nützlich sein).


Fragen zur Selbstkontrolle:

  1. Wann ist es angebracht, die Konstruktion als Bedingungsoperator zu verwenden? Schalter?
  2. Was ist der Zweck des Standardblocks in der Anweisung Schalter?
  3. Ist es notwendig, die Break-Anweisung in der Konstruktion zu verwenden? Schalter?
  4. Wie die Gruppierung für Optionen mit mehreren Werten in einem Operator durchgeführt wird Schalter?

Schleifenanweisungen in Javascript - For

Syntax:

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

Wichtig: Die Javascript-For-Schleife wird verwendet, wenn im Voraus bekannt ist, wie oft die zyklischen Aktionen wiederholt werden sollen (wie viele Iterationen die Schleife hat)

  • Als Anfangswert des Iterationszählers wird ein Zuweisungsausdruck verwendet: z. B. i=0 - der Schleifenzähler beginnt bei Null:
  • for(var i = 0; Bedingung; Zählererhöhung) ( //.. Anweisungsblock.. )

  • Als Zählerinkrement wird der Schritt angegeben, um den der Zähler erhöht werden soll: Gibt beispielsweise an, dass jede Iteration der Schleife von seiner Erhöhung begleitet wird 1 :
  • for(var i = 0; Bedingung; i++) ( //..Anweisungsblock.. )

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

Betrachten Sie ein Beispiel für die Verwendung einer for-Schleife in Javascript:

Beispiel 5: Ausgabe einer Zahlenfolge 0 1 2 3 ... 9 , jede Ziffer - von einer neuen Zeile. 0 1 2 ... 8 9


✍ Lösung:
  • Um eine Zahlenfolge anzuzeigen, verwenden wir den Zähler der for-Schleife, der seinen Wert von ändern sollte 0 Vor 9 nach Reihenfolge.
  • So für der Anfangswert des Schleifenzählers setzen Sie den Wert auf 0 ; als Zyklusbedingungen Endwert einstellen - ii=9; Gegenschritt sollte gleich sein 1 (i++), da der Unterschied zwischen den Mitgliedern der Folge 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 jeweils auf dem Bildschirm angezeigt wird 0 1 2 3 ... 9 , und jede Ziffer - von einer neuen Zeile (tag
    ).

  • Testen Sie das Skript in einem Browser.

Aufgabe Js 3_9. 1 Vor 15 .

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

Code-Auszug:

For (var i=...;...;...)( summe = summe + ...; ) ...

Exit-Anweisungen für Schleifen Unterbrechung und fortsetzen in JavaScript. Operator Ausfahrt

Die break-Anweisung unterbricht die Ausführung des gesamten Schleifenkörpers, d.h. bricht aus einer Schleife in Javascript aus.

Während die Continue-Anweisung die Ausführung der aktuellen Iteration der Schleife unterbricht, aber die Ausführung der Schleife ab der nächsten Iteration fortsetzt.

Betrachten Sie die Operation der Break- und Continue-Anweisungen anhand eines Beispiels:

Beispiel: Verstehen Sie den Code-Snippet-Algorithmus. 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:
  • In der dritten Zeile des Beispiels gibt es eine Bedingung, aufgrund derer die Zahl 4 wird nicht angezeigt: Operator fortsetzen geht zur nächsten Iteration der Schleife, ohne die aktuelle abzuschließen.
  • In Zeile Nr. 5 wird die Schleife verlassen, aber die Zahl 8 auf dem Bildschirm ausgegeben, da die Ausgabeanweisung vor der Bedingung (in der 4. Zeile) steht. Kennengelernt Unterbrechung, verlässt der Interpreter die Schleife.
  • Dass. auf dem Bildschirm wird sein: 0 1 2 3 5 6 7 8 - jede Ziffer in einer neuen Zeile.

Aufgabe Js 3_10. Gibt die Summe aller ganzen Zahlen aus 1 Vor 15 , ohne die Gesamtzahl 5 und 7 .

Exit-Anweisung

Die Sprache javasctipt stellt einen Operator zum Beenden von Programmcode bereit – den Exit-Operator.
Am häufigsten wird der Operator verwendet, um einen Benutzereingabefehler auszuschließen.


Betrachten Sie ein Beispiel:

Beispiel 6: Bitten Sie den Benutzer, eine Zahl einzugeben. Wenn keine Nummer, dann eine Nachricht anzeigen "Eine Nummer wird benötigt!" und stoppen Sie das Programm.


✍ Lösung:
  • Variable initialisieren Nummer der vom Benutzer in das modale Fenster eingegebene Wert:
  • var number = prompt("Bitte geben Sie eine Zahl ein");

  • Verwenden Sie die Funktion parseInt, um eine Zeichenfolge in eine Ganzzahl umzuwandeln, und überprüfen Sie, ob der Eingabewert eine Zahl ist:
  • Zahl = parseInt (Zahl); // gibt NaN zurück - keine Zahl

    Wenn keine Zahl eingegeben wird, gibt die Funktion den NaN-Wert zurück. keine Nummer- keine Zahl).

  • Variablenwert prüfen Nummer mit der isNaN-Funktion:
  • x = isNaN(Zahl); // gibt true zurück, wenn der Wert nicht numerisch ist

    isNaN-Funktion gibt Wert zurück Stimmt wenn die Variable keine Zahl ist

  • Durch die "Lügen"-Regel Organisieren Sie eine Überprüfung der Variablenwerte x. Wenn der Wert nicht numerisch ist, geben Sie die entsprechende Bemerkung aus und beenden Sie das Programm:
  • if (x)( alert("Nummer benötigt!"); exit; // Programmende )

  • Um das Programm fortzusetzen (wenn der eingegebene Wert eine Zahl war), zeigen Sie das folgende Fenster an, das zur Eingabe auffordert:
  • alert("Geben Sie die zweite Zahl ein");// Wenn Sie keine Zahl eingeben, wird der Operator nicht ausgeführt

  • Testen Sie das Skript in einem Browser.

Fragen zur Selbstkontrolle:

  1. Nennen Sie drei Schleifenparameter zum und ihren Zweck erläutern.
  2. Welche Anweisungen sollen die Schleife verlassen und unterbrechen? Nennen Sie Beispiele für ihre Verwendung.
  3. Wozu dient der Operator? Ausfahrt?

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

Bei Verwendung ist ein interessantes Arbeiten mit der for-Schleife möglich gleichzeitig zwei Zähler in einem Zyklus.
Betrachten Sie ein Beispiel:

Beispiel 7: Geben 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 zwei Zähler in der for-Schleife: Zähler i, um die Sequenz auszugeben 0 1 2 , Zähler j, um die Sequenz auszugeben 2 3 4 :
  • 1 2 3 für (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { }

    für(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 ein Semikolon(;).

  • Verwenden Sie für die Ausgabe jeder Zeile das Tag
    :
  • 1 2 3 4 für (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i=" , ich, "j=" , j) ; )

    für(i=0, j=2; i<10, j<5; i++, j++) { document.write("
    i=", ich, "j=",j); )

Seitenerstellung „on the fly“: wie geht das?

Betrachten Sie vor der nächsten Aufgabe ein Beispiel Dynamisches Erstellen einer HTML-Seite mit Javascript.

Beispiel 8:

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

Erinnern wir uns an die Tags:
Nummerierte Liste Tags:

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

Aufzählungslisten-Tags:

var listType=prompt("Geben Sie "1" für eine Liste mit Aufzählungszeichen, "2" für eine nummerierte Liste ein");

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

            ") else ( alert("Geben Sie den richtigen Typ ein"); exit; )

          • Variable initialisieren Kolvo der vom Benutzer in das modale Fenster eingegebene Wert:
          • var kolvo=prompt("Punktzahl eingeben");

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

          • Da Listen mit entsprechenden Tags abgeschlossen werden, geben Sie je nach Listentyp schließende 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. Aufgabe Js 3_11.
      Schreiben Sie ein Skript, das Tags anzeigt Eingang(Bedienelemente) unterschiedlicher Art, je nach eingegebener Anzahl:

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

      Auch die Anzahl der angezeigten Tags sollte abgefragt werden.

      Erinnern wir uns an die Tags:

      Für 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. Das "Zeichnen" der Tafel folgt den HTML-Tags für die Tabelle:

      Erinnern wir uns an die Tags:

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

      --

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

      Ergebnis:

      Zusätzlich:

      1. Zeigen Sie das Einmaleins in den Tabellenzellen mit den Schleifenzählern (i und j) an.
      2. Zeigen Sie die erste Zeile und die erste Spalte mit rotem Hintergrund an (Tabellenzellenattribut bgcolor):
        <tdbgcolor="rot">-</td>

        -

      Ergebnis:


      Fragen zur Selbstkontrolle:

      1. Erklären Sie, was das Konzept der „dynamischen Seitenerstellung“ bedeutet?
      2. Welches Sprachkonstrukt wird am häufigsten verwendet, wenn eine Seite dynamisch erstellt wird?

      Schleifenanweisungen in Javascript - While

      Die Syntax der While-Anweisung lautet:

      while (Bedingung) ( //..Anweisungsblock.. );

      Beispiel: Anzeige in einer Dialogbox von Zweierpotenzen bis zu 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 → es wird die zusammengesetzte Zuweisungsoperation verwendet: das Produkt kombiniert mit der Zuweisung, d.h. dasselbe wie a = a*2

      • Testen Sie das Ergebnis in einem 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); }

      Zweierpotenzen werden bis angezeigt 128 inklusive und der Wert 64 wird übersprungen. Diese. In den Dialogfeldern sehen wir: 2 4 8 16 32 128

      Aufgabe Js 3_13. Welche Werte wird das folgende Code-Snippet ausgeben?

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


      Aufgabe Js 3_14. Konstruktionscode schreiben X bis zu einem Grad j eine While-Schleife verwenden. Variablenwerte abfragen und Ergebnis mit alert() anzeigen.

      Code hinzufügen:

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

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

      A Beheben Sie den Fehler im Programm zum Finden 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 (counter == 0 ) ( Fakultät = 1 ; break ; ) Fakultät = Fakultät / Zähler; Zähler = Zähler + 1 ; ) while (Zähler > 0 ) ; document.write (faktoriell) ;

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


      Aufgabe Js 3_16. Modifizieren Sie das Programm für Benutzereingaben:

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

      Wie finde ich Fehler in Javascript?

      In einigen Fällen funktioniert der Code auf der Seite aus unbekannten Gründen nicht. Wo nach einem Fehler suchen? In solchen Fällen können Sie die try..catch-Anweisung verwenden.

      Die try..catch-Anweisung versucht, ein Stück Code auszuführen, und wenn es einen Fehler im Code gibt, dann ist es möglich, den Fehler auf dem Bildschirm anzuzeigen.
      Der Fehler wird im Objekt e.message gespeichert.

      Betrachten Sie die Bedienung des Operators an einem Beispiel:

      Beispiel: Schreiben Sie einen Operator mit einem Fehler in das Programm. Überprüfen Sie den vermeintlich fehlerhaften Code auf einen Fehler: Wenn der Code einen Fehler enthält, geben Sie eine Nachricht aus "Fehlerbehandlung: Fehlername". Geben Sie nach Überprüfung der fehlerhaften Anweisung unabhängig davon, ob ein Fehler im Code vorliegt, eine Nachricht aus "letzte Schritte"


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

        Versuchen Sie es auf Englisch. - "try", also setzen wir die try-Anweisung vor ein Codefragment, das 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 catch (e) ( alert( "Fehlerbehandlung: "+e.Nachricht); )

        catch(e) ( alert("Fehlerbehandlung: "+e.message); )

        Liegt wirklich ein Fehler vor, dann speichert die catch-Anweisung (von engl. „to catch“) diesen Fehler im e-Objekt. In Zukunft kann es in einem Dialogfeld angezeigt werden - e.message .

      • Fügen Sie die letzte Nachricht, die Sie unabhängig davon, ob ein Fehler im Code vorliegt, anzeigen möchten, in einen finally-Block ein:
      • final ( alert("Aktionen beenden"); ) alert("after");

        Tritt immer noch ein Fehler auf, dann schaltet der Interpreter nach seiner Ausgabe in unserem Beispiel auf die Ausführung des catch-Blocks um, und dann finally (von englisch „completion“, „finally“), der unabhängig davon immer ausgeführt wird ob ein Fehler aufgetreten ist oder nicht. Auch wenn im catch-Block ein Fehler aufgetreten ist.

      Wichtig: Der finally-Block im Konstrukt ist optional.


      Aufgabe Js 3_17. Führen Sie das obige Beispiel mit den folgenden Änderungen aus:

    3. Entfernen Sie den finally-Block und beobachten Sie, wie der Code ausgeführt wird.
    4. Ersetzen Sie den Fehleroperator durch einen fehlerfreien und sehen Sie, was das Ergebnis sein wird.
    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. Schleifenanweisungen:

    10. für Schleife
    11. while-Schleife
    12. do...while-Schleife
    13. für ... in Schleife
    14. Abschlussaufgabe Js 3_18.
      Erstelle 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). Dann wird der zweite Spieler aufgefordert, die eingegebene Zahl zu erraten. Die Antwort ist eine Nachricht "wenig" oder "viel" abhängig von der eingegebenen Antwort. Wenn der Spieler richtig rät, werden Glückwünsche angezeigt. Wenn er nicht rät, geht das Spiel weiter (bis die Zahl tatsächlich erraten wird).
      2. Berechnen Sie die Anzahl der Versuche und geben Sie das Ergebnis zurück, wenn die Zahl erraten wurde.


      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.

      Die Quelle für dieses interaktive Beispiel ist in einem GitHub-Repository gespeichert. Wenn Sie zum interaktiven Beispielprojekt beitragen möchten, klonen Sie bitte https://github.com/mdn/interactive-examples und senden Sie uns eine Pull-Anfrage.

      Syntax

      if (Bedingung) Anweisung1 Bedingung Ein Ausdruck, der entweder als wahr oder falsch betrachtet wird. Anweisung1 Anweisung, die ausgeführt wird, wenn die Bedingung wahr ist. Kann eine beliebige Anweisung sein, einschließlich weiterer verschachtelter if-Anweisungen. Um mehrere Anweisungen auszuführen, verwenden Sie eine Blockanweisung (( ... )), um diese Anweisungen zu gruppieren. Um keine Anweisungen auszuführen, verwenden Sie eine leere Anweisung. statement2 Anweisung, die ausgeführt wird, wenn die Bedingung falsch ist und die Else-Klausel existiert. Kann eine beliebige Anweisung sein, einschließlich Blockanweisungen und weiter verschachtelter if-Anweisungen.

      Beschreibung

      Mehrere if...else-Anweisungen können verschachtelt werden, um eine else if-Klausel zu erstellen. Beachten Sie, dass es in JavaScript kein Schlüsselwort elseif (in einem Wort) gibt.

      Wenn (Bedingung1) Anweisung1 sonst wenn (Bedingung2) Anweisung2 sonst wenn (Bedingung3) Anweisung3 ... sonst AnweisungN

      Um zu sehen, wie das funktioniert, würde es so aussehen, wenn die Verschachtelung richtig eingerückt wäre:

      Wenn (Bedingung1) Anweisung1 sonst wenn (Bedingung2) Anweisung2 sonst wenn (Bedingung3) ...

      Um mehrere Anweisungen innerhalb einer Klausel auszuführen, verwenden Sie eine Blockanweisung (( ... )), um diese Anweisungen zu gruppieren. Im Allgemeinen empfiehlt es sich, immer Blockanweisungen zu verwenden, insbesondere in Code mit verschachtelten if-Anweisungen:

      Wenn (Bedingung) (Anweisungen1) Sonst (Anweisungen2)

      Verwechseln Sie die primitiven booleschen Werte wahr und falsch nicht mit der Wahrhaftigkeit oder Falschheit des booleschen Objekts. Jeder Wert, der nicht false , undefined , null , 0 , -0 , NaN oder die leere Zeichenfolge ("") ist, und jedes Objekt, einschließlich eines booleschen Objekts, dessen Wert false ist, wird als wahr angesehen, wenn es als Bedingung verwendet wird. Zum Beispiel:

      Varb = new Boolean (falsch); if (b) // diese Bedingung ist wahr

      Beispiele

      Verwenden von if...else

      if (cipher_char === from_char) ( result = result + to_char; x++; ) else ( result = result + clear_char; )

      Mit else if

      Beachten Sie, dass es in JavaScript keine else if-Syntax gibt. Sie können es jedoch mit einem Leerzeichen zwischen else und if schreiben:

      If (x > 50) ( /* das Richtige tun */ ) else if (x > 5) ( /* das Richtige tun */ ) else ( /* das Richtige tun */ )

      Zuweisung innerhalb des bedingten Ausdrucks

      Es ist ratsam, in einem bedingten Ausdruck keine einfachen Zuweisungen zu verwenden, da die Zuweisung bei einem flüchtigen Blick auf den Code mit Gleichheit verwechselt werden kann. Verwenden Sie beispielsweise nicht den folgenden Code:

      Wenn (x = y) ( /* das Richtige tun */ )

      Wenn Sie eine Zuweisung in einem bedingten Ausdruck verwenden müssen, ist es üblich, zusätzliche Klammern um die Zuweisung zu setzen. Zum Beispiel:

      Wenn ((x = y)) ( /* das Richtige tun */ )

      Spezifikationen

      Spezifikation Status Kommentar
      ECMAScript Neuester Entwurf (ECMA-262)
      Entwurf
      ECMAScript 2015 (6. Ausgabe, ECMA-262)
      Die Definition von "if-Anweisung" in dieser Spezifikation.
      Standard
      ECMAScript 5.1 (ECMA-262)
      Die Definition von "if-Anweisung" in dieser Spezifikation.
      Standard
      ECMAScript 3. Auflage (ECMA-262)
      Die Definition von "if-Anweisung" in dieser Spezifikation.
      Standard
      ECMAScript 1. Auflage (ECMA-262)
      Die Definition von "if-Anweisung" in dieser Spezifikation.
      Standard Anfangsdefinition

      Browser-Kompatibilität

      Die Kompatibilitätstabelle auf dieser Seite wird aus strukturierten Daten generiert. Wenn Sie zu den Daten beitragen möchten, besuchen Sie bitte https://github.com/mdn/browser-compat-data und senden Sie uns eine Pull-Anfrage.

      Kompatibilitätsdaten auf GitHub aktualisieren

      SchreibtischHandy, MobiltelefonServer
      ChromKanteFeuerfuchsInternet ExplorerOperSafariAndroid-WebansichtChrome für AndroidFirefox für AndroidOpera für AndroidSafari auf iOSSamsung-InternetNode.js
      ansonstenVollständige Chrome-Unterstützung 1Edge-Vollunterstützung 12Firefox volle Unterstützung 1IE Volle Unterstützung 3Opera Vollständige UnterstützungJaSafari Volle Unterstützung JaWebView Android Volle Unterstützung 1Volle Unterstützung für Chrome Android 18Firefox-Android-Vollunterstützung 4Opera Android Volle Unterstützung JaSafari iOS Volle Unterstützung JaSamsung Internet Android Volle Unterstützung 1.0nodejs Volle Unterstützung Ja

      Bedingte Aussagen

      Mit bedingten Anweisungen können Sie abhängig vom Wert des angegebenen Ausdrucks andere Anweisungen überspringen oder ausführen. Diese Anweisungen sind Entscheidungspunkte im Programm und werden manchmal auch als bezeichnet Filialbetreiber.

      Wenn Sie sich vorstellen, dass das Programm eine Straße ist und der JavaScript-Interpreter ein Reisender, der darauf entlanggeht, dann können Sie sich bedingte Anweisungen als Kreuzungen vorstellen, an denen sich der Programmcode in zwei oder mehr Straßen gabelt, und an solchen Kreuzungen muss der Interpreter entscheiden, welche Straße zu folgen.

      if/else-Anweisung

      Die if-Anweisung ist eine grundlegende Steueranweisung, die es dem JavaScript-Interpreter ermöglicht, abhängig von Bedingungen Entscheidungen zu treffen oder genauer gesagt Anweisungen auszuführen. Die if-Anweisung hat zwei Formen. Zuerst:

      if (Ausdruck) Anweisung

      In dieser Form wird der Ausdruck zunächst ausgewertet. Wenn das Ergebnis wahr ist, wird die Anweisung ausgeführt. Wenn der Ausdruck als falsch ausgewertet wird, wird die Anweisung nicht ausgeführt. Zum Beispiel:

      If (username == null) // Wenn der Benutzername null oder undefiniert ist username = "Alex"; // definiere es

      Beachten Sie, dass die Klammern um den bedingten Ausdruck ein erforderlicher Teil der if-Anweisungssyntax sind.

      Die zweite Form der if-Anweisung führt ein else-Konstrukt ein, das ausgeführt wird, wenn der Ausdruck als falsch ausgewertet wird. Seine Syntax ist:

      if (Ausdruck) Anweisung1 sonst Anweisung2

      Dieses Formular führt Anweisung1 aus, wenn der Ausdruck als wahr ausgewertet wird, und Anweisung2, wenn der Ausdruck als falsch ausgewertet wird. Zum Beispiel:

      If (n == 1) console.log("1 neue Nachricht erhalten."); else console.log("Empfangene " + n + " neue Nachrichten.");

      sonst if-Anweisung

      Die if/else-Anweisung wertet den Wert eines Ausdrucks aus und führt je nach Ergebnis den einen oder anderen Codeabschnitt aus. Aber was ist, wenn Sie eines der vielen Fragmente ausführen möchten? Ein möglicher Weg, dies zu tun, ist die Verwendung einer else if-Anweisung. Technisch gesehen ist es keine eigenständige JavaScript-Anweisung; Es ist nur ein üblicher Programmierstil, der eine wiederholte if/else-Anweisung verwendet:

      If (n == 1) ( // Block 1 ausführen ) else if (n == 2) ( // Block 2 ausführen ) else if (n == 3) ( // Block 3 ausführen ) else ( // Wenn weder noch eine der vorherigen else-Anweisungen wurde nicht ausgeführt, führe Block 4 aus )

      An diesem Ausschnitt ist nichts Besonderes. Es ist nur eine Folge von if-Anweisungen, wobei jede if-Anweisung Teil des else-Konstrukts der vorherigen Anweisung ist.

      Switch-Anweisung

      Die if-Anweisung erstellt eine Verzweigung im Fluss der Programmausführung, und eine Verzweigung mit mehreren Positionen kann mit mehreren else if-Anweisungen erfolgen. Dies ist jedoch nicht immer die beste Lösung, insbesondere wenn alle Zweige vom Wert desselben Ausdrucks abhängen. In diesem Fall ist es verschwenderisch, den Wert desselben Ausdrucks in mehreren if-Anweisungen neu auszuwerten.

      Die switch-Anweisung ist genau für solche Situationen gedacht. Auf das Schlüsselwort switch folgt ein Ausdruck in Klammern und ein Codeblock in geschweiften Klammern:

      Schalter (Ausdruck) ( Anweisungen )

      Die vollständige Syntax der switch-Anweisung ist jedoch komplexer als hier gezeigt. Verschiedene Stellen im Block sind mit dem Stichwort gekennzeichnet Fall gefolgt von einem Ausdruck und einem Doppelpunkt.

      Wenn eine switch-Anweisung ausgeführt wird, wertet sie den Wert des Ausdrucks aus und sucht dann nach dem Case-Label, das diesem Wert entspricht (die Übereinstimmung wird mit dem Identitätsoperator === bestimmt). Wenn das Label gefunden wird, wird der Codeblock ab der ersten Anweisung nach dem Case-Label ausgeführt. Wenn kein case-Label mit passendem Wert gefunden wird, beginnt die Ausführung bei der ersten Anweisung nach dem speziellen Label Ursprünglich:. Wenn es kein default: label gibt, wird der gesamte switch-Anweisungsblock übersprungen.

      Die Arbeit der switch-Anweisung ist mit Worten schwer zu erklären, die Erklärung sieht mit einem Beispiel viel klarer aus. Die folgende switch-Anweisung entspricht den wiederholten if/else-Anweisungen aus dem vorherigen Beispiel:

      Switch(n) ( case 1: // Ausführen, wenn n === 1 // Block 1 ausführen break; // Hier stoppen case 2: // Ausführen, wenn n === 2 // Block 2 ausführen break; // Stop here case 3: // Ausführen, wenn n === 3 // Block 3 ausführen break; // Hier stoppen default: // Wenn alles andere fehlschlägt... // Block 4 ausführen break; // Hier stoppen )

      Stichwort beachten Unterbrechung am Ende jedes Fallblocks. Die break-Anweisung bewirkt, dass die Steuerung an das Ende der switch-Anweisung übergeben wird und die Ausführung der folgenden Anweisungen fortgesetzt wird. Die case-Konstrukte in einer switch-Anweisung spezifizieren nur den Startpunkt des auszuführenden Codes, aber keine Endpunkte.

      Wenn keine break-Anweisungen vorhanden sind, beginnt die switch-Anweisung mit der Ausführung des Codeblocks mit dem Case-Label, das dem Wert des Ausdrucks entspricht, und fährt mit der Ausführung der Anweisungen fort, bis sie das Ende des Blocks erreicht. In seltenen Fällen ist dies nützlich, um Code zu schreiben, der von einem case-Label zum nächsten springt, aber in 99 % der Fälle sollten Sie jeden case-Block sorgfältig mit einer break-Anweisung beenden. (Wenn Sie innerhalb einer Funktion einen Schalter verwenden, können Sie anstelle von break eine return-Anweisung verwenden. Diese beiden Anweisungen beenden die switch-Anweisung und verhindern, dass sie zum nächsten case-Label springt.)

      Das Folgende ist ein praktischeres Beispiel für die Verwendung einer switch-Anweisung, die einen Wert auf eine Weise in eine Zeichenfolge konvertiert, die vom Typ des Werts abhängt:

      Funktion convert(x) ( switch(typeof x) ( // Konvertiere eine Zahl in einen hexadezimalen Integer-Fall "number": return x.toString(16); // Gib einen String in Anführungszeichen zurück case "string": return """ + x + """; // Jeder andere Typ wird normal konvertiert default: return x.toString(); ) ) console.log(convert(1067)); // Ergebnis "42b"

      Beachten Sie, dass in den beiden vorherigen Beispielen auf die case-Schlüsselwörter Zahlen oder Zeichenfolgenliterale folgten. So wird die switch-Anweisung in der Praxis am häufigsten verwendet, aber der ECMAScript-Standard erlaubt es Ihnen, beliebige Ausdrücke nach dem Fall anzugeben.

      Die switch-Anweisung wertet zuerst den Ausdruck nach dem Schlüsselwort switch und dann die case-Ausdrücke in der angegebenen Reihenfolge aus, bis ein übereinstimmender Wert gefunden wird. Die Tatsache einer Übereinstimmung wird mit dem Identitätsoperator === bestimmt, nicht mit dem Gleichheitsoperator ==, daher müssen die Ausdrücke ohne Typkonvertierung übereinstimmen.

      Da nicht jedes Mal, wenn eine switch-Anweisung ausgeführt wird, alle case-Ausdrücke ausgewertet werden, sollten Sie die Verwendung von case-Ausdrücken mit Nebeneffekten wie Funktionsaufrufen und Zuweisungen vermeiden. Es ist am sichersten, Ihre Case-Ausdrücke auf konstante Ausdrücke zu beschränken.

      Wie bereits erläutert, beginnt die switch-Anweisung mit der Ausführung der Anweisung mit der Bezeichnung default:, wenn keine der case-Anweisungen mit der switch-Anweisung übereinstimmt. Wenn es kein default: label gibt, wird der Hauptteil der switch-Anweisung vollständig übersprungen. Beachten Sie, dass in den vorherigen Beispielen das Label default: am Ende des Hauptteils der switch-Anweisung angegeben wird, nach allen case-Labels. Dies ist der logische und übliche Platz dafür, aber tatsächlich kann es überall innerhalb der switch-Anweisung platziert werden.