JavaScript – Das Handbuch für die Praxis. David Flanagan

JavaScript  –  Das Handbuch für die Praxis - David Flanagan


Скачать книгу
tatsächlich an einer beliebigen Stelle Ihres Codes als gültiges Array- oder Objektliteral. Sie können überprüfen, ob Sie eine destrukturierende Zuweisung korrekt formuliert haben, indem Sie versuchen, deren linke Seite auf der rechten Seite eines anderen Zuweisungsausdrucks zu verwenden:

      // Beginnen Sie mit einer Datenstruktur und einer komplexen Destrukturierung.

      let points = [{x: 1, y: 2}, {x: 3, y: 4}];

      let [{x: x1, y: y1}, {x: x2, y: y2}] = points;

      // Überprüfen Sie Ihre Destrukturierungssyntax, indem Sie die Zuordnung

      // umdrehen.

      let points2 = [{x: x1, y: y1}, {x: x2, y: y2}]; // points2 == points

       3.11Zusammenfassung

      Einige wichtige, merkenswerte Punkte aus diesem Kapitel:

       Wie man Zahlen und Strings in JavaScript schreibt und sie handhabt.

       Wie man mit den anderen primitiven Typen von JavaScript arbeitet: boolesche Werte, Symbole, null und undefined.

       Die Unterschiede zwischen unveränderbaren primitiven Typen und veränderbaren referenzierenden Typen.

       Wie JavaScript implizit Werte von einem Typ in einen anderen konvertiert und wie Sie solche Umwandlungen in Ihren Programmen auch explizit vornehmen können.

       Wie man Konstanten und Variablen deklariert und initialisiert (einschließlich destrukturierender Zuweisungen) und welchen lexikalischen Geltungsbereich sie haben.

       KAPITEL 4

       Ausdrücke und Operatoren

      In diesem Kapitel geht es um Ausdrücke und die Operatoren, mit denen viele von ihnen gebildet werden. Ein Ausdruck ist in JavaScript eine Zeichenfolge, die ausgewertet werden kann, um einen Wert zu liefern. Eine Konstante, die direkt in Ihr Programm eingebettet ist, ist eine sehr einfache Art von Ausdruck. Ein Variablenname ist ebenfalls ein einfacher Ausdruck, der zu genau dem Wert ausgewertet wird, der dieser Variablen zuvor zugewiesen wurde. Komplexe Ausdrücke werden aus einfacheren Ausdrücken aufgebaut. Ein vollständiger Ausdruck für den Zugriff auf ein Array setzt sich beispielsweise zusammen aus einem Ausdruck, der zu einem Array ausgewertet wird, einer folgenden öffnenden eckigen Klammer, einem Ausdruck, der zu einer ganzen Zahl ausgewertet wird, und schließlich einer schließenden eckigen Klammer. Dieser neue, zusammengesetzte und komplexere Ausdruck wird zu dem Wert ausgewertet, der an der entsprechenden Indexposition im angegebenen Array gespeichert ist. In ähnlicher Weise besteht ein Funktionsaufruf aus einem Ausdruck, der zu einem Funktionsobjekt ausgewertet wird, und null oder mehr zusätzlichen Ausdrücken, die als die Argumente für die Funktion verwendet werden.

      Am häufigsten setzt man für den Aufbau komplexer Ausdrücke aus einfacheren Ausdrücken Operatoren ein. Ein Operator kombiniert die Werte seiner (meist zwei) Operanden auf vorgegebene Weise und wird zu einem neuen Wert ausgewertet. Der Multiplikationsoperator * ist ein einfaches Beispiel dafür: Der Ausdruck x * y wird zum Produkt der Werte der Ausdrücke x und y ausgewertet. Der Einfachheit halber spricht man manchmal auch davon, dass ein Operator einen Wert zurückgibt, und nicht, dass er zu einem Wert »auswertet«.

      Dieses Kapitel dokumentiert alle Operatoren von JavaScript und erläutert außerdem Ausdrücke, die keine Operatoren nutzen, wie die Array-Indizierung und Funktionsaufrufe. Wenn Sie sich mit Sprachen wie C auskennen, wird Ihnen die Syntax von JavaScript bereits vertraut erscheinen.

       4.1Elementare Ausdrücke

      Als elementare Ausdrücke bezeichnet man solche Ausdrücke, die nicht weiter in einfachere Teilausdrücke zerlegt werden können. Elementare Ausdrücke sind in JavaScript konstante oder literale Werte, bestimmte Schlüsselwörter der Sprache und Variablenreferenzen.

      Literale sind konstante Werte, die unmittelbar in Ihr Programm eingebettet sind. Sie sehen beispielsweise so aus:

      1.23 // Ein Zahlliteral.

      "hello" // Ein String-Literal.

      /pattern/ // Ein Regex-Literal.

      Die Syntax für Zahlliterale haben wir in 3.2 behandelt. String-Literale wurden in 3.3 besprochen. Die Syntax für Regex-Literale wurde in 3.3.5 bereits vorgestellt und wird in 11.3 noch ausführlich behandelt.

      Einige der reservierten Wörter von JavaScript sind elementare Ausdrücke:

      true // Wird zum booleschen Wert true ausgewertet.

      false // Wird zum booleschen Wert false ausgewertet.

      null // Wird zum Wert null ausgewertet.

      this // Wird zum "aktuellen" Objekt ausgewertet.

      true, false und null haben wir in 3.4 und in 3.5 kennengelernt. Im Unterschied zu den anderen Schlüsselwörtern ist this keine Konstante – es wird an unterschiedlichen Stellen eines Programms zu unterschiedlichen Werten ausgewertet. this wird in der objektorientierten Programmierung genutzt. Im Körper einer Methode wird this zu dem Objekt ausgewertet, auf dem die Methode aufgerufen wurde. Mehr zu this finden Sie in 4.5, in Kapitel 8 (insbesondere 8.2.2) und in Kapitel 9.

      Die dritte Form elementarer Ausdrücke sind Verweise auf eine Variable, Konstante oder Eigenschaft des globalen Objekts:

      i // Wird zum Wert der Variablen i ausgewertet.

      sum // Wird zum Wert der Variablen sum ausgewertet.

      undefined // Der Wert der Eigenschaft "undefined" des globalen Objekts.

      Erscheint ein Identifier für sich alleine stehend in einem Programm, geht JavaScript davon aus, dass es sich um eine Variable oder Konstante oder um eine Eigenschaft des globalen Objekts handelt. Der Versuch, eine nicht vorhandene Variable auszuwerten, löst einen ReferenceError, einen Referenzfehler, aus.

       4.2Initialisierungsausdrücke von Objekten und Arrays

      Objekt- und Array-Initialisierer sind Ausdrücke, deren Wert ein neu erzeugtes Objekt oder Array ist. Diese Initialisierungsausdrücke werden auch als Objektliterale und Array-Literale bezeichnet. Im Unterschied zu echten Literalen sind sie jedoch keine elementaren Ausdrücke, da sie mehrere Teilausdrücke mit Eigenschafts- und Elementwerten enthalten. Array-Initialisierer haben eine etwas einfacherere Syntax als Objektinitialisierer. Mit ihnen wollen wir deswegen beginnen.

      Ein Array-Initialisierer ist eine durch Kommata getrennte Liste von Ausdrücken in eckigen Klammern. Der Wert eines Array-Initialisierers ist ein neu erstelltes Array. Die Elemente dieses neuen Arrays werden mit den Werten der durch Kommata getrennten Ausdrücke initialisiert:

      [] // Ein leeres Array. Keine Ausdrücke in den Klammern heißt:

      // keine Elemente.

      [1+2,3+4] // Ein Array


Скачать книгу