Название | JavaScript – Das Handbuch für die Praxis |
---|---|
Автор произведения | David Flanagan |
Жанр | Математика |
Серия | |
Издательство | Математика |
Год выпуска | 0 |
isbn | 9783960104926 |
function abs(x) { // Eine Funktion zur Berechnung des Absolutbetrags.
if (x >= 0) { // Die if-Anweisung …
return x; // … führt diesen Code aus, wenn der Vergleich
// wahr ist.
} // Das Ende der if-Anweisung.
else { // Die optionale else-Anweisung führt den in ihr
// enthaltenen Code
return -x; // aus, wenn der Vergleich falsch ist.
} // Geschweifte Klammern sind optional, wenn es nur
// eine Anweisung gibt.
} // Beachten Sie die return-Anweisungen innerhalb
// von if/else.
abs(-10) === abs(10) // => true
function sum(array) { // Berechnet die Summe der Elemente eines Arrays.
let sum = 0; // Beginnt mit einer Anfangssumme von 0.
for(let x of array) { // Schleife über das Array, wobei jedes Element x
// zugeordnet wird.
sum += x; // Aktuellen Elementwert der Summe hinzufügen.
} // Das Ende der for-Schleife.
return sum; // Die Summe zurückgeben.
}
sum(primes) // => 28: Summe der ersten 5 Primzahlen 2+3+5+7+11.
function factorial(n) { // Eine Funktion zur Berechnung von Fakultäten.
let product = 1; // Beginne mit dem Produkt von 1.
while(n > 1) { // Wiederhole Anweisungen in {}, solange der Ausdruck
// in () wahr ist.
product *= n; // Kurzform für product = product * n.
n--; // Kurzform fürn=n -1.
} // Das Ende der while-Schleife.
return product; // Rückgabe des Produkts.
}
factorial(4) // => 24: 1*4*3*2
function factorial2(n) { // Eine alternative Version, die eine andere
// Schleife verwendet.
let i, product = 1; // Beginne mit 1.
for(i=2; i <= n; i++) // i automatisch von 2 bis n inkrementieren.
product *= i; // Wird jedes Mal ausgeführt. {} wird für einzeilige
// Schleifen nicht benötigt.
return product; // Rückgabe der Fakultät.
}
factorial2(5) // => 120: 1*2*3*4*5
JavaScript unterstützt einen objektorientierten Programmierstil, unterscheidet sich aber deutlich von »klassischen« objektorientierten Programmiersprachen. Kapitel 9 behandelt die objektorientierte Programmierung in JavaScript im Detail anhand vieler Beispiele. Es folgt ein sehr einfaches Beispiel, das zeigt, wie Sie eine JavaScript-Klasse erstellen, die einen zweidimensionalen Punkt repräsentiert. Objekte, die Instanzen dieser Klasse sind, besitzen genau eine Methode namens distance(), die den Abstand des Punkts vom Ursprung berechnet:
class Point { // Gemäß Konvention werden Klassennamen großgeschrieben.
constructor(x, y) { // Konstruktorfunktion zur Initialisierung neuer
// Instanzen.
this.x = x; // Das Schlüsselwort "this" bezeichnet das neue Objekt,
// das initialisiert wird.
this.y = y; // Funktionsargumente als Objekteigenschaften speichern.
} // In Konstruktorfunktionen ist keine Rückgabe
// erforderlich.
distance() { // Methode zur Berechnung der Entfernung zwischen
// Ursprung und Punkt.
return Math.sqrt( // Liefert die Quadratwurzel aus x2 + y2.
this.x * this.x + // "this" bezieht sich auf das Punktobjekt, auf dem
this.y * this.y // die Methode distance() aufgerufen wird.
);
}
}
// Verwenden Sie die Konstruktorfunktion Point() mit "new", um Punktobjekte
// zu erstellen.
let p = new Point(1, 1); // Der geometrische Punkt (1,1).
// Verwenden Sie jetzt eine Methode des Punktobjekts p.
p.distance() // => Math.SQRT2
So weit die Einführung in die grundlegende Syntax und die Fähigkeiten von JavaScript. Es folgen in sich abgeschlossene Kapitel, in denen weitere Sprachmerkmale behandelt werden:
Zeigt, wie JavaScript-Code in einer Datei oder einem Skript Funktionen und Klassen verwenden kann, die in anderen Dateien oder Skripten definiert sind.
Kapitel 11, Die JavaScript-Standardbibliothek
Deckt die eingebauten Funktionen und Klassen ab, die allen JavaScript-Programmen zur Verfügung stehen. Dazu gehören wichtige Datenstrukturen wie Maps und Sets, eine Klasse für reguläre Ausdrücke für die Suche nach Textmustern, Funktionen zur Serialisierung von JavaScript-Datenstrukturen und vieles mehr.
Kapitel 12, Iteratoren und Generatoren
Erklärt, wie die for/of-Schleife funktioniert und wie Sie Ihre eigenen Klassen mit for/of iterierbar machen können. Daneben werden Generatorfunktionen und die yield-Anweisung behandelt.
Kapitel 13, Asynchrones JavaScript
Untersucht eingehend die asynchrone Programmierung in JavaScript, wobei Callbacks und Events, Promise-basierte APIs und die Schlüsselwörter async und await behandelt werden. Obwohl JavaScript im Kern nicht asynchron ist, sind asynchrone APIs Standard sowohl in Webbrowsern als auch in Node, und in diesem Kapitel werden die Techniken für die Arbeit mit diesen APIs erläutert.
Kapitel 14, Metaprogrammierung
Stellt eine Reihe fortgeschrittener Funktionen von JavaScript vor, die für Programmierer interessant sind, die Codebibliotheken schreiben, um diese anderen JavaScript-Programmierern zur Verfügung zu stellen.
Kapitel 15, JavaScript im Webbrowser
Stellt die Hostumgebung des Webbrowsers vor, erklärt, wie