Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
Einleitung 23
Teil I: Die Grundlagen von JavaScript 27
Kapitel 1: Auf den Spuren von JavaScript: Zwischen Browser-Zauberei und Server-Magie 29
Kapitel 2: Datentypen, Variablen und Konstanten 53
Kapitel 3: Operatoren, Bedingungen und Schleifen 83
Kapitel 4: Funktionen 107
Kapitel 5: Klassen und Arrays 127
Kapitel 6: Fehlerbehandlung 163
Teil II: Fortgeschrittene Themen 183
Kapitel 7: Das JavaScript-Modulsystem 185
Kapitel 8: Asynchronität in JavaScript 205
Kapitel 9: Generatoren und Iteratoren 227
Teil III: Das Frontend 239
Kapitel 10: Arbeiten mit dem DOM 241
Kapitel 11: Events 259
Teil IV: Das Ökosystem 279
Kapitel 12: Paketmanager 281
Kapitel 13: Die passenden Pakete finden 303
Teil V: Das Zusammenspiel zwischen Client und Server 313
Kapitel 14: Mit einem Server kommunizieren 315
Kapitel 15: Serverseitiges JavaScript mit Express 335
Kapitel 16: Clientseitiges JavaScript mit React 371
Kapitel 17: Echtzeit-Kommunikation mit WebSockets 413
Teil VI: Der Top-Ten-Teil 429
Kapitel 18: Die zehn wichtigsten Bibliotheken und Werkzeuge in JavaScript 431
Abbildungsverzeichnis 449
Stichwortverzeichnis 453
Kapitel 1
IN DIESEM KAPITEL
JavaScript ist nahezu überall verfügbar, von seiner ursprünglichen Umgebung, dem Browser, hat sich die Programmiersprache mittlerweile in alle Bereiche des täglichen Lebens verbreitet. So können Sie als JavaScript-EntwicklerIn nicht nur dynamische Web-Frontends programmieren, sondern auch die zugehörigen Backends serverseitig mit JavaScript umsetzen. Die Sprache ist jedoch auch in Umgebungen präsent, von denen Sie wahrscheinlich im ersten Moment nicht erwarten, dass dort eine unscheinbare Web-Skriptsprache ausgeführt wird. So finden Sie JavaScript in Autos, Küchengeräten, Industrieanlagen und sogar im Weltall. Das Integrated Science Instrument Module des James-Webb-Weltraumteleskops wird beispielsweise mit JavaScript kontrolliert (https://www.jwst.nasa.gov/resources/ISIMmanuscript.pdf). Auch das Weltraumunternehmen SpaceX nutzt JavaScript für seine Raumflüge. Interessant ist hier nicht nur, dass die Crew Dragon per Touchdisplay ins Weltall gesteuert wird, sondern dass deren UI-Elemente auf einer JavaScript-Bibliothek basieren (https://www.theverge.com/2020/5/30/21275753/nasa-spacex-astronauts-fly-crew-dragon-touchscreen-controls).
https://www.jwst.nasa.gov/resources/ISIMmanuscript.pdf
https://www.theverge.com/2020/5/30/21275753/nasa-spacex-astronauts-fly-crew-dragon-touchscreen-controls
Sie sehen also, es gibt schlechtere Alternativen, wenn es um Programmiersprachen geht, als JavaScript. Die Sprache ist verhältnismäßig einfach zu lernen, weitverbreitet und hat eine sehr starke Community, die immer wieder neue bahnbrechende Entwicklungen hervorbringt. Außerdem ist JavaScript ein Industriestandard. JavaScript ist der weltweit verbreitete Name der Programmiersprache ECMAScript, die im Standard ECMA-262 definiert wird. Diesen finden Sie unter https://www.ecma-international.org/publications-and-standards/standards/ecma-262/. Für JavaScript gibt es außerdem einen ISO-Standard mit der Bezeichnung ISO/IEC-16262, der dem ECMA-Standard entspricht. Die JavaScript-Version aus dem Jahr 2022 würde, wenn Sie die Definition ausdrucken würden, 809 Seiten in Anspruch nehmen. Dabei handelt es sich nur um den Sprachkern. Erweiterungen wie die DOM-API sind hier noch nicht mit inbegriffen. Das ECMAScript-Dokument ist auch nichts, was Sie an einem verregneten Wochenende zum Zeitvertreib lesen sollten, da es sich beim überwiegenden Teil des Texts um formale Beschreibungen der Sprache handelt.
https://www.ecma-international.org/publications-and-standards/standards/ecma-262/
Doch warum heißt JavaScript nicht auch offiziell JavaScript? Die Antwort auf diese Frage ist einfach: Die Markenrechte an JavaScript liegen bei Oracle. Solange das Unternehmen den Namen nicht freigibt, ist es nicht möglich, die Programmiersprache offiziell als JavaScript zu bezeichnen. Die Standardisierung und Organisation klingt zugegebenermaßen etwas trocken und angestaubt, ist für uns als JavaScript-EntwicklerInnen aber von großer Bedeutung, da sich die Hersteller von JavaScript-Engines überwiegend an diesen Standard halten und es so mittlerweile nur noch in geringem Umfang zu Problemen zwischen den einzelnen Plattformen kommt. Zur Entstehungszeit und in den ersten Jahren von JavaScript sah die Situation noch ganz anders aus.
Kein Buch über JavaScript kommt ohne eine kleine Geschichtsstunde aus. Also möchte ich auch hier keine Ausnahme machen. Ich beschränke mich jedoch auf die interessanten, relevanten und vielleicht etwas kuriosen Eckpunkte. Das Gerücht, dass die erste Version von JavaScript in nur 10 Tagen entstanden ist, hält sich hartnäckig. Das würde auch erklären, warum JavaScript an manchen Stellen so ist, wie es ist. Sie werden sowohl im Verlauf dieses Buchs als auch bei Ihrer Arbeit mit der Programmiersprache feststellen, dass JavaScript nicht nur seine Sonnen-, sondern auch die ein oder andere Schattenseite hat. Netscape Communications, das Unternehmen, das den Netscape Navigator, einen der ersten Browser, entwickelt hat, beauftragte 1995 Brendan Eich damit, eine Skriptsprache zu entwickeln, mit der mehr Dynamik in das bis dahin recht statische HTML des Browsers gebracht werden sollte.
Netscape übernahm diese erste Version der Skriptsprache allerdings noch nicht in den Browser. Einen Prototyp einer Programmiersprache in einen der damals am weitesten verbreiteten Browser zu integrieren wäre viel zu riskant gewesen, vor allem vor dem Hintergrund, dass zwischen 1995 und 1998 der sogenannte Browserkrieg zwischen Microsoft und Netscape um die Vorherrschaft über das Internet tobte. Und so entwickelte Brendan Eich bis 1996 weiter an JavaScript, das zunächst unter dem Codenamen Mocha und später unter LiveScript geführt wurde. Version 1.1 wurde mit dem Netscape Navigator 3.0 im August 1996 veröffentlicht. Ebenfalls im August 1996 zog Microsoft mit seinem Konkurrenzprodukt JScript im Internet Explorer 3 nach.
Beide Skriptsprachen entwickelten sich über die Zeit auf eine recht ähnliche Art, wobei mal Netscape, mal Microsoft die Nase vorn hatte. Zum Leidwesen der WebentwicklerInnen der damaligen Zeit unterschieden sich LiveScript und JScript in einigen Aspekten voneinander, dadurch mussten die EntwicklerInnen die jeweilige Umgebung erkennen und speziell angepasste Programmlogik ausführen. Die Geburtsstunde der Polyfills.
Ein Polyfill ist ein Stück Code, das ein Feature in einer Umgebung emuliert, in der es eigentlich nicht existiert. Mit den Grundzügen der Skriptsprachen der Browser konnten EntwicklerInnen schon zu einem frühen Zeitpunkt viele Funktionen bereitstellen und die Schnittstellen so weit vereinheitlichen, dass eine halbwegs komfortable Entwicklung möglich war.
Bei neuen Sprachfeatures ist es auch heute noch üblich, auf Polyfills zurückzugreifen, bis alle für die Applikation relevanten Umgebungen das Feature unterstützen. Eines der populärsten Polyfills, das man in der Regel gar nicht als solches wahrnimmt, ist TypeScript. Eine Programmiersprache, die auf den Regeln von JavaScript aufbaut und die fehlende Typsicherheit zu JavaScript hinzufügt. Der TypeScript-Code wird dann vom TypeScript-Compiler in JavaScript ausgeführt, das dann im Browser oder serverseitig ausgeführt werden kann. Doch der Compiler ist auch in der Lage, moderne Features in älteren Umgebungen zur Verfügung zu stellen.
Falls TypeScript für Sie keine Option ist, können Sie auch auf spezialisierte Polyfills für bestimmte Sprachfeatures zurückgreifen. Sie sollten jedoch daran denken, dass ein Polyfill in der Regel weniger performant als das JavaScript-Original ist. Sobald Sie ein Polyfill also nicht mehr benötigen, sollten Sie es aus dem Quellcode Ihrer Applikation entfernen.
Der erste ECMAScript-Standard erschien im Juni 1997 und brachte den ersten Hoffnungsschimmer. Die Entwicklung des Standards verlief in der ersten Zeit eher schleppend und gipfelte im Abbruch der Arbeiten an der vierten Version im Jahr 2008. Das letzte Update am Sprachstandard gab es zu diesem Zeitpunkt im Jahr 1999. Wir sprechen von einem Zeitraum von 9 Jahren in der auch damals schon schnelllebigen Web-Welt. Die Standardisierung wurde jedoch wieder aufgenommen und viele der Features aus der vierten Version wurden verworfen. 2009 veröffentlichte die ECMA dann endlich die Version 5 von ECMAScript mit der Unterstützung von JSON.
Einen Meilenstein markiert die Veröffentlichung von ECMAScript 6, kurz ES6, oder später dann ECMAScript2015. Neben vielen interessanten Erweiterungen wie beispielsweise Klassen oder Block-Scoping gibt es seit dieser Version jährliche Aktualisierungen des Sprachstandards. Diese werden mit der jeweiligen Jahreszahl benannt. Der ECMAScript-Standard aus dem Jahr 2022 heißt also ECMAScript2022.
Das TC39, eine Abkürzung für Technical Committee 39, eine Arbeitsgruppe der ECMA, hat die Aufgabe, den ECMAScript-Standard weiterzuentwickeln und neue Features zu integrieren. Dem TC39 gehören sowohl JavaScript-EntwicklerInnen als auch Abgesandte großer Unternehmen an, die in verschiedenen Rollen an der Entwicklung von ECMAScript-Umgebungen beteiligt sind. Die Sitzungen des TC39 stehen jedem Mitglied der ECMA offen.
Der Prozess, mit dem ein neues Feature in den Standard aufgenommen wird, besteht aus 5 Stufen, die durch die ECMA genau definiert sind.
Stufe 0 (Strawman)
Zweck:
Eingangskriterien:
Stufe 1(Proposal)
Dateiformat: ePUBKopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet – also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.