EBOOK

JavaScript effektiv


€ 23,99
 
pdf eBook
Sofort lieferbar (Download)
Dezember 2013

Beschreibung

Beschreibung

Wollen Sie JavaScript wirklich beherrschen? Dann sollten Sie die vielen ausdrucksstarken Besonderheiten der Sprache effektiv nutzen und ihre Fallstricke vermeiden können. Ganz gleich, wie lange Sie schon JavaScript-Code schreiben - dieses Buch wird Ihnen helfen, Ihr Verständnis dieser leistungsfähigen Programmiersprache zu vertiefen und zuverlässigen, wartbaren Code zu schreiben.

Anhand zahlreicher praktischer Beispiele vermittelt Ihnen dieses Buch 68 Ansätze für besseren JavaScript-Code. Sie lernen, für jedes Projekt den passenden Programmierstil zu wählen, mit unvorhergesehenen Problemen umzugehen und das Potenzial von JavaScript gezielt einzusetzen. Dabei geht es u.a. um:

. Verbesserte Vorgehensweisen für die prototypbasierte objektorientierte Programmierung
. Feinheiten beim Umgang mit Arrays und Dictionary-Objekten
. Praktische Erläuterungen der JavaScript-Funktionen und der Semantik von Gültigkeitsbereichen
. Nützliche JavaScript-Muster und -Idiome, wie Optionsobjekte und Method Chaining
. Tief gehende Beschreibung des "Run-to- Completion"-Ansatzes für Nebenläufigkeit

Der Autor David Herman ist seit Jahren Mitglied im JavaScript-Standardisierungskomitee TC 39 der Ecma. In diesem Buch beleuchtet er die inneren Funktionen der Sprache anschaulich und praxisorientiert. Er zeigt Ihnen, wie Sie die Vorzüge von JavaScript in ihrer ganzen Breite nutzen können, und bietet bewährte Techniken und Ansätze, auf die Sie sich in den kommenden Jahren verlassen können.

Portrait

David Herman ist Senior Researcher bei Mozilla Research und tätig im Ecma TC39, dem technischen Ausschuss, der sich um die Standardisierung von Java- Script kümmert. Er hat einen Bachelor in Informatik vom Grinnell College sowie einen Master- und einen Doktortitel in Informatik der Northeastern University.

Leseprobe

2 Gültigkeitsbereich von Variablen


Gültigkeitsbereiche sind für Programmierer so etwas wie Sauerstoff: Sie sind allgegenwärtig, und meistens denken Sie gar nicht darüber nach. Aber wenn Gültigkeitsbereiche überschritten und verunreinigt werden, dann wird es brenzlig.

Die grundlegenden Regeln für Gültigkeitsbereiche in JavaScript sind zum Glück sehr einfach, gut gestaltet und äußerst leistungsstark. Es gibt jedoch Ausnahmen. Um wirkungsvoll mit JavaScript arbeiten zu können, müssen Sie sowohl die Grundprinzipien für die Gültigkeitsbereiche von Variablen als auch die Sonderfälle beherrschen, die zu kleinen, aber gemeinen Problemen führen können.

Thema 8 Verwenden Sie das globale Objekt so wenig wie möglich


Globale Variablen vermeiden

In JavaScript ist es einfach, Variablen im globalen Namespace zu erstellen. Es macht weniger Mühe, globale Variablen anzulegen, da sie keine Form von Deklaration erfordern und automatisch im gesamten Programm zugänglich sind. Dank dieser Annehmlichkeiten sind sie eine große Versuchung für Anfänger. Erfahrene Programmierer aber wissen, dass sie globale Variablen vermeiden sollten, denn deren Definition verunreinigt den gemeinsamen Namespace und eröffnet die Möglichkeit von versehentlichen Namenskonflikten. Außerdem laufen globale Variablen dem Sinn der Modularität zuwider, denn sie verursachen eine unnötige Kopplung zwischen getrennten Bestandteilen eines Programms. Auch wenn es bequem sein mag, »jetzt zu programmieren und sich später um die Gliederung zu kümmern«, achten gute Entwickler ständig auf die Struktur, indem sie im Rahmen des Programmiervorgangs fortlaufend verwandte Wirkungsweisen gruppieren und nicht zusammenhängende Komponenten trenne
n.

Variablen so lokal wie möglich halten

Da der globale Namespace die einzige echte Möglichkeit ist, mit der getrennte Komponenten eines JavaScript-Programms miteinander interagieren können, ist eine gewisse Nutzung dieses Namespace unvermeidlich. Eine Komponente oder Bibliothek muss einen globalen Namen definieren, damit andere Teile des Programms darauf zugreifen können. Abgesehen davon aber sollten Variablen so lokal wie möglich gehalten werden. Es ist sicherlich möglich, ein Programm ausschließlich mit globalen Variablen zu schreiben, aber damit beschwören Sie nur Probleme herauf. Wenn Sie die temporären Variablen von Funktionen grundsätzlich global definieren, müssten Sie selbst bei ganz einfachen Funktionen befürchten, dass dieselben Variablennamen auch von anderem Code verwendet werden:

var i, n, sum; // Globale Variablen
function averageScore(players) {
   sum = 0;
   for (i = 0, n = players.length; i < n; i++) {
      sum += score(players[i]);
   }
   return sum / n;
}

Diese Definition von averageScore funktioniert nicht, wenn die Funktion score, auf die sie sich stützt, irgendwelche dieser globalen Variablen für ihre eigenen Zwecke verwendet:

var i, n, sum; // Dieselben globalen Variablen wie bei averageScore!
function score(player) {
   sum = 0;
   for (i = 0, n = player.levels.length; i < n; i++) {
      sum += player.levels[i].score;
 &nbs
p; }
   return sum;
}

Die Lösung besteht darin, solche Variablen lokal zu halten und auf den Teil des Codes zu beschränken, in dem sie gebraucht werden:

function averageScore(players) {
   var i, n, sum;
   sum = 0;
   for (i = 0, n = players.length; i < n; i++) {
      sum += score(players[i]);
   }
   return sum / n;
}

function score(player) {
   var i, n, sum;
   sum = 0;
   for (i = 0, n = player.levels.length; i < n; i++) {
      sum += player.levels[i].score;
   }
   return sum;
}

Das globale Objekt so wenig wie möglich verändern

Der globale Namespace von JavaScript wird auch als globales Objekt bereitgestellt, das zu Anfang eines Programms als ursprünglicher Wert des Schlüsselworts this zugänglich ist. In Webbrowsern ist das globale Objekt auch an die globale Variable window gebunden. Wenn Sie globale Variablen hinzufügen oder bearbeiten, wird das globale Objekt automatisch aktualisiert:

this.foo; // Nicht definiert
foo = "global foo";
this.foo; // "global foo"

Die Änderung des globalen Objekts wiederum aktualisiert automatisch den globalen Namespace:

var foo = "global foo";
this.foo = "changed";
foo; // "changed"

Das bedeutet, dass Sie zwei Mechanismen zur Auswahl haben, um globale Variablen z
u erstellen: Sie können sie mit var im globalen Gültigkeitsbereich erstellen oder dem globalen Objekt hinzufügen. Beides funktioniert, aber die Deklaration mit var hat den Vorteil, dass sie die Auswirkungen auf den Gültigkeitsbereich des Programms deutlicher macht. Da eine Referenz auf eine nicht gebundene Variable zu einem Laufzeitfehler führt, ist es für die Benutzer Ihres Codes einfacher, wenn Sie den Gültigkeitsbereich deutlich und einfach festlegen, da sie dadurch besser erkennen können, welche globalen Variablen deklariert werden.

Merkmale erkennen

Es ist zwar am besten, die Verwendung des globalen Objekts so weit wie möglich einzuschränken, doch für einen Zweck ist es unverzichtbar. Da das Objekt eine sogenannte dynamische Reflektion der globalen Umgebung bietet, können Sie damit eine laufende Umgebung abfragen, um zu ermitteln, welche Merkmale auf der Plattform zur Verfügung stehen. Beispielsweise wurde in ES5 das neue globale Objekt JSON zum Lesen und Schreiben des JSON-Datenformats eingeführt. Als Notlösung für die Bereitstellung von Code in Umgebungen, bei denen nicht sicher ist, ob sie bereits das Objekt JSON verfügbar machen, können Sie prüfen, ob dieses Objekt vorhanden ist, und eine alternative Implementierung anbieten:

if (!this.JSON) {
   this.JSON = {
      parse: ...,
      stringify: ...
   };
}

Wenn Sie eine eigene Implementierung von JSON bereitstellen, können Sie diese natürlich auch einfach bedingungslos verwenden. Allerdings sind die Implementierungen der Hostumgebung fast immer zu bevorzugen, da sie sorgfältig auf Korrektheit und Standardkonformität geprüft wurden und häu
fig eine bessere Leistung bieten als Lösungen von Drittanbietern.

Diese Technik der Merkmalserkennung ist vor allem in Webbrowsern wichtig, da der Code von einer breiten Palette verschiedener Browser und Browserversionen ausgeführt werden kann. Dies ist eine relativ einfache Möglichkeit, um Programme unempfindlich gegenüber den Schwankungen im Funktionsumfang der Plattformen zu machen. Diese Technik lässt sich auch auf anderen Gebieten anwenden, beispielsweise für die Veröffentlichung von Bibliotheken, die sowohl in Browser- als auch in JavaScript-Serverumgebungen funktionieren sollen.

Was Sie sich merken sollten

Vermeiden Sie die Deklaration globaler Variablen.

Deklarieren Sie Variablen so lokal wie möglich.

Vermeiden Sie es, Eigenschaften zum globalen Objekt hinzuzufügen.

Verwenden Sie das globale Objekt, um den Funktionsumfang einer Plattform zu bestimmen.

Thema 9 Vergessen Sie nicht, lokale Variablen zu deklarieren


Wenn es etwas gibt, das störender ist als eine globale Variable, dann ist es eine ungewollte globale Variable. Leider kann es aufgrund der Regeln zur Variablenzuweisung in JavaScript nur zu leicht geschehen, dass man versehentlich eine globale Variable erstellt. Ein Programm, das eine Zuweisung zu einer ungebundenen Variable vornimmt, meldet keinen Fehler, sondern erstellt einfach eine neue globale Variable und führt die Zuweisung daran durch. Wenn Sie also vergessen, eine lokale Variable zu deklarieren, wird sie dadurch zu einer globalen...


Technik

Dieses eBook wird im PDF-Format geliefert und ist mit einem Wasserzeichen versehen. Sie können dieses eBook auf vielen gängigen Endgeräten lesen.

Sie können dieses eBook auf vielen gängigen Endgeräten lesen.

Für welche Geräte?
Sie können das eBook auf allen Lesegeräten, in Apps und in Lesesoftware öffnen, die PDF unterstützen:

  • tolino Reader
    Öffnen Sie das eBook nach der automatischen Synchronisation auf dem Reader oder übertragen Sie das eBook auf Ihr tolino Gerät mit einer kostenlosen Software wie beispielsweise Adobe Digital Editions.

  • Sony Reader und andere eBook Reader
    Laden Sie das eBook direkt auf dem Reader im eBook.de-Shop herunter oder übertragen Sie es mit der kostenlosen Software Sony READER FOR PC/Mac oder Adobe Digital Editions.

  • Tablets und Smartphones
    Installieren Sie die eBook.de READER App für Android und iOS oder verwenden Sie eine andere Lese-App für PDF-eBooks.

  • PC und Mac
    Lesen Sie das eBook direkt nach dem Herunterladen über "Jetzt lesen" im Browser, oder mit der kostenlosen Lesesoftware Adobe Digital Editions.

Die eBook-Datei wird beim Herunterladen mit einem nicht löschbaren Wasserzeichen individuell markiert, sodass die Ermittlung und rechtliche Verfolgung des ursprünglichen Käufers im Fall einer missbräuchlichen Nutzung der eBook-Datei möglich ist.

Bitte beachten Sie: Dieses eBook ist nicht auf Kindle-Geräten lesbar.

Ihr erstes eBook?
Hier erhalten Sie alle Informationen rund um die digitalen Bücher für Neueinsteiger.

EAN: 9783864914249
Untertitel: 68 Dinge, die ein guter JavaScript-Entwickler wissen sollte. Dateigröße in MByte: 5.
Verlag: dpunkt.verlag
Erscheinungsdatum: Dezember 2013
Seitenanzahl: 240 Seiten
Übersetzer/Sprecher: Übersetzt von Volkmar Gronau
Format: pdf eBook
Kopierschutz: Wasserzeichen
Es gibt zu diesem Artikel noch keine Bewertungen.Kundenbewertung schreiben