Impressum

Oliver Zeigermann
JavaScript für Java-Entwickler

schnell+kompakt
ISBN: 978-3-86802-633-7

© 2013 entwickler.press
ein Imprint der Software & Support Media GmbH

http://www.entwickler-press.de
http://www.software-support.biz

Ihr Kontakt zum Verlag und Lektorat:
lektorat@entwickler-press.de

Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.

Lektorat: Sebastian Burkart
Korrektorat: Frauke Pesch
Satz: Karolina Gaspar, Dominique Kalbassi
Umschlaggestaltung: Maria Rudi

Alle Rechte, auch für Übersetzungen, sind vorbehalten. Reproduktion jeglicher Art (Fotokopie, Nachdruck, Mikrofilm, Erfassung auf elektronischen Datenträgern oder andere Verfahren) nur mit schriftlicher Genehmigung des Verlags. Jegliche Haftung für die Richtigkeit des gesamten Werks, kann, trotz sorgfältiger Prüfung durch Autor und Verlag, nicht übernommen werden. Die im Buch genannten Produkte, Warenzeichen und Firmennamen sind in der Regel durch deren Inhaber geschützt.

1 Einleitung

JavaScript sieht syntaktisch aus wie ein vereinfachtes Java. Somit haben viele Java-Entwickler das Gefühl, die Sprache JavaScript eigentlich zu kennen und deshalb nicht lernen zu müssen. Allerdings ist das Verhalten von JavaScript deutlich anders als das von Java. Dies führt zu einer großen Anzahl von Java-Entwicklern, die zwar JavaScript nutzen, aber nie wirklich die Grundlagen der Sprache studiert haben.

Dieses Buch ist für Java-Entwickler gedacht, die mit so wenig Mühen wie möglich einen umfassenden Überblick über die Sprache JavaScript erlangen wollen oder müssen. Missverständnisse werden ausgeräumt und eine Beherrschung der Muster und Grundkonzepte von JavaScript werden vermittelt.

Bibliotheken und Frameworks werden in diesem Buch ganz bewusst und ausdrücklich nicht behandelt. Hier geht es ausschließlich um die Sprache JavaScript und Patterns, die für uns als Java-Entwickler wichtig sind. Die Beschreibung der Sprache und der Patterns geschieht unabhängig von allen Bibliotheken und Frameworks, d. h. egal, welches Framework oder welche Bibliothek ihr einsetzen wollt, dieses Buch vermittelt euch die dazu notwendigen Grundlagen der Sprache JavaScript.

Dieses Buch ist keine Referenz und erhebt keinen Anspruch auf Vollständigkeit. Ich verzichte auf alle Details, die nicht wirklich notwendig für das Verständnis der Sprache sind. Zu jedem Thema gibt es aber Referenzen auf die ECMAScript-Spezifikation, Erklärungen beim Mozilla Development Network [5] oder andere passende Links. Damit sollten keine Fragen offen bleiben.

Ich beziehe mich ausschließlich auf die aktuellste ECMAScript-Version 5.1 [1, 2]. Diese Version wird von allen modernen Browsern ab Internet Explorer 9 unterstützt. Eine kurze Erklärung zu ECMAScript: ECMAScript ist der Standard und JavaScript ist dazu eine Implementierung.

Ich rege dazu an, allen Beispielcode inklusive aller Zwischenschritte selbst auszuprobieren. Wem das Abtippen bzw. Kopieren zu mühsam ist, der kann auch gern das GitHub-Repository zu diesem Buch auschecken. In ihm sind sämtliche Beispiele nach Kapiteln geordnet zu finden [3].

Inhalt

Ihr könnt dieses Buch von vorn bis hinten durchlesen. In diesem Fall werden alle notwendigen Grundlagen der Sprache JavaScript vermittelt – zugeschnitten auf Java-Entwickler.

Je nach Interesse, Zeit und Vorkenntnissen könnt ihr aber auch nur einzelne Kapitel lesen. Wenn ihr noch wenig oder keine Erfahrung mit JavaScript gemacht habt, solltet ihr zumindest Kapitel 2 (Grundlagen) und 3 (Funktionen) lesen. Sie bilden die Grundlage für die folgenden Kapitel. Insbesondere in Kapitel 3 sehen wir einiges, was auch für manche erfahrene JavaScript-Programmierer neu sein könnte.

In Kapitel 4 (Objekte, Prototypen und Vererbung) gucken wir uns an, wie Vererbung in JavaScript funktioniert und wie man die aus Java bekannten Mechanismen von Klassen und Vererbung auch in der JavaScript-Welt anwenden kann. Dazu nutzen wir einige Best Practices. Dieses Kapitel ist das konzeptionell anspruchsvollste des Buchs. Ich empfehle, es an einem Stück und evtl. zweimal zu lesen.

In Kapitel 5 (Module) schauen wir auf Modulkonzepte und Closures. Für dieses Kapitel solltet ihr das Wissen aus Kapitel 2 und 3 haben, Kapitel 4 ist nicht unbedingt notwendig. Wir schließen das Kapitel mit einer Betrachtung der gängigen Modulformate AMD und CommonJS.

Im letzten Kapitel (Fortgeschrittene Themen) kommen alle wichtigen Themen, die keine Grundlagen mehr sind. Hier müsst ihr nicht alles lesen, sondern könnt euch die Themen herauspicken, die euch interessieren. Besonders spannend sind dabei zusätzliche OO-Muster, die allerdings ein Verständnis der Themen aus Kapitel 4 erfordern.

Der Autor und warum dieses Buch?

Ich – das ist Oliver Zeigermann – programmiere seit über zehn Jahren in Java. Im Laufe der letzten Jahre habe ich mich – zunächst widerwillig – mit JavaScript angefreundet und programmiere nun sogar lieber JavaScript als Java. Dazu musste ich mich durch viele Missverständnisse und Wirrung kämpfen, die oft durch meinen Hintergrund als Java-Programmierer bedingt waren.

Idealerweise erspart euch die Lektüre dieses Buchs viel von dem Frust und der Verwirrung, die ich selbst erlebt habe. Das würde mich sehr freuen! Für Rückmeldungen oder Fragen könnt ihr mich gern per E-Mail kontaktieren. Meine Kontaktdaten findet ihr unter [4].

Danksagung

Ich möchte mich bei allen bedanken, die bei diesem Buch mitgeholfen haben. Das sind in alphabetischer Reihenfolge: Sebastian Burkart, Daniel Florey, Nils Hartmann, Lutz Hühnken, Markus Klink, Charlotte Krause, Oliver Langer, René Preißel, Christian Schmidt, Alexander Weber und Stefan Zörner. Vielen Dank an euch und die anderen, die ich nur deshalb nicht erwähnt habe, weil ich vergesslich bin.

Links & Literatur

HTML-Version der ECMAScript-Spezifikation 5.1:
http://www.ecma-international.org/ecma-262/5.1

PDF-Version der ECMAScript-Spezifikation 5.1:
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

Das GitHub-Repository für dieses Buch: https://github.com/DJCordhose/javascript-fuer-java-entwickler

Meine Homepage: http://zeigermann.eu/

Das Mozilla Development Network für JavaScript:
https://developer.mozilla.org/en-US/docs/Web/JavaScript

2 Grundlagen

2.1 Hallo Welt

Die typische Ablaufumgebung für ein JavaScript-Programm ist nach wie vor der Browser. Zwar gibt es seit einiger Zeit mit Node.js [6] die Möglichkeit, JavaScript auch auf dem Server und von der Kommandozeile aufzurufen, wir werden uns hier aber auf die Ausführung im Browser beschränken.

Im Browser läuft JavaScript durch Einbetten in eine HTML-Seite oder durch Ausführen in der JavaScript-Konsole. Alle Browser haben eine solche Konsole. In meinen Beschreibungen beziehe ich mich speziell auf den Chrome-Browser, weil er der am weitesten verbreitete Browser ist und auf allen Plattformen läuft. Zudem sind die Entwicklertools von Chrome sehr gut.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!