Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Du hast es sicher bemerkt, aber "JS" im Titel der Serie ist keine Abkürzung für Wörter, mit denen man über JavaScript flucht, obwohl wir uns wahrscheinlich alle mit dem Fluchen über die Macken der Sprache identifizieren können!

Seit den Anfängen des Internets ist JavaScript eine grundlegende Technologie, die interaktive Erlebnisse rund um die Inhalte, die wir konsumieren, ermöglicht. Auch wenn die Anfänge von JavaScript mit flackernden Mausspuren und lästigen Eingabeaufforderungen zu tun hatten, haben sich die Technologie und die Möglichkeiten von JavaScript fast zwei Jahrzehnte später um viele Größenordnungen weiterentwickelt, und nur wenige zweifeln an seiner Bedeutung im Herzen der weltweit am weitesten verbreiteten Softwareplattform: dem Web.

Aber als Sprache ist sie immer wieder Zielscheibe für viel Kritik gewesen, was zum Teil an ihrem Erbe, aber noch mehr an ihrer Designphilosophie liegt. Sogar der Name erinnert, wie Brendan Eich es einmal ausdrückte, an den Status eines "dummen kleinen Bruders" neben seinem reiferen älteren Bruder Java. Aber der Name ist nur ein Zufall von Politik und Marketing. Die beiden Sprachen unterscheiden sich in vielen wichtigen Punkten. "JavaScript" ist mit "Java" so verwandt wie "Karneval" mit "Auto".

Da JavaScript Konzepte und Syntax-Idiome aus mehreren Sprachen entlehnt, darunter stolze prozedurale Wurzeln im Stil von C sowie subtile, weniger offensichtliche funktionale Wurzeln im Stil von Scheme/Lisp, ist es für ein breites Publikum von Entwicklern äußerst zugänglich, auch für solche mit wenig oder gar keiner Programmiererfahrung. Die "Hello World" von JavaScript ist so einfach, dass die Sprache einladend wirkt und es leicht fällt, sich mit ihr anzufreunden.

Auch wenn JavaScript vielleicht eine der einfachsten Sprachen ist, mit denen man sich anfreunden kann, ist es aufgrund seiner Eigenheiten viel seltener als bei anderen Sprachen, dass man die Sprache wirklich beherrscht. Während man eine Sprache wie C oder C++ ziemlich gut beherrschen muss, um ein komplettes Programm zu schreiben, kratzt JavaScript in der Produktion oft nur an der Oberfläche dessen, was die Sprache leisten kann.

Anspruchsvolle Konzepte, die tief in der Sprache verwurzelt sind, tauchen stattdessen auf scheinbar einfache Weise auf, z. B. die Weitergabe von Funktionen als Callbacks, was den JavaScript-Entwickler dazu ermutigt, die Sprache einfach so zu verwenden, wie sie ist, und sich nicht zu viele Gedanken darüber zu machen, was unter der Haube vor sich geht.

Sie ist gleichzeitig eine einfache, leicht zu verwendende Sprache, die eine große Anziehungskraft ausübt, und eine komplexe und nuancierte Sammlung von Sprachmechanismen, die sich ohne sorgfältiges Studium selbst für die erfahrensten JavaScript-Entwickler dem wahren Verständnis entziehen.

Darin liegt das Paradoxon von JavaScript, die Achillesferse der Sprache, die Herausforderung, die wir gerade angehen. Weil JavaScript ohne Verständnis verwendet werden kann, wird das Verständnis der Sprache oft nie erreicht.

Mission

Wenn du jedes Mal, wenn du in JavaScript auf eine Überraschung oder Frustration stößt, damit reagierst, sie auf die schwarze Liste zu setzen (wie es manche zu tun pflegen), wirst du bald nur noch eine hohle Schale des Reichtums von JavaScript vorfinden.

Obwohl diese Untergruppe als "die guten Teile" bezeichnet wird, möchte ich dich, liebe Leserin und lieber Leser, bitten, sie stattdessen als "die leichten Teile", "die sicheren Teile" oder sogar "die unvollständigen Teile" zu betrachten.

Diese You Don't Know JS-Reihe bietet eine gegenteilige Herausforderung: Lerne und verstehe JavaScript in seiner Gesamtheit, auch und gerade die "schwierigen Teile".

Hier gehen wir direkt gegen die Tendenz von JS-Entwicklern vor, "gerade genug" zu lernen, um zurechtzukommen, ohne sich jemals zu zwingen, genau zu lernen, wie und warum sich die Sprache so verhält, wie sie es tut. Außerdem verzichten wir auf den üblichen Rat, sich zurückzuziehen, wenn der Weg schwierig wird.

Ich gebe mich nicht damit zufrieden - und das solltest du auch nicht -, dass ich aufhöre, wenn etwas einfach funktioniert, ohne wirklich zu wissen, warum. Ich fordere dich auf, die holprige "Straße, die nicht so viel befahren wird" zu erkunden und alles, was JavaScript ist und kann, zu verstehen. Mit diesem Wissen wirst du keine Technik, kein Framework und kein beliebtes Akronym der Woche mehr verstehen.

Diese Bücher befassen sich jeweils mit bestimmten Kernbereichen der Sprache, die am häufigsten missverstanden oder zu wenig verstanden werden, und gehen sehr tief und erschöpfend auf sie ein. Du solltest nach der Lektüre sicher sein, dass du nicht nur die theoretischen, sondern auch die praktischen Dinge verstanden hast, die du wissen musst.

Das JavaScript, das du jetzt kennst, ist wahrscheinlich ein Teil, der dir von anderen weitergegeben wurde, die durch unvollständiges Verständnis verbrannt wurden. Dieses JavaScript ist nur ein Schatten der wahren Sprache. Du kennst JavaScript noch nicht wirklich, aber wenn du dich in diese Serie vertiefst, wirst du das. Lies weiter, meine Freunde. JavaScript wartet auf dich.

Überprüfung

JavaScript ist fantastisch. Es ist leicht, es teilweise zu lernen, und viel schwieriger, es vollständig (oder sogar ausreichend) zu lernen. Wenn Entwickler/innen verwirrt sind, schieben sie die Schuld meist auf die Sprache und nicht auf ihr mangelndes Verständnis. Diese Bücher wollen das ändern, indem sie dir ein Gefühl für die Sprache vermitteln, die du jetzt gründlich kennen kannst und solltest.

Hinweis

Viele der Beispiele in diesem Buch gehen von modernen (und zukunftsweisenden) JavaScript-Engine-Umgebungen aus, z. B. ES6. Einige Codes funktionieren möglicherweise nicht wie beschrieben, wenn sie in älteren (vor ES6) Engines ausgeführt werden.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter http://bit.ly/ydkjs-async-code zum Download bereit .

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.

Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Ein Beispiel: "You Don't Know JavaScript: Async & Performance " von Kyle Simpson (O'Reilly). Copyright 2015 Getify Solutions, Inc. 978-1-491-90422-0."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

Safari® Bücher Online

Hinweis

Safari Books Online ist eine digitale On-Demand-Bibliothek, die Experteninhalte in Buch- und Videoform von weltweit führenden Autoren aus den Bereichen Technologie und Wirtschaft liefert.

Technologieexperten, Softwareentwickler, Webdesigner sowie Geschäfts- und Kreativprofis nutzen Safari Books Online als Hauptressource für Recherchen, Problemlösungen, Lernen und Zertifizierungsschulungen.

Safari Books Online bietet eine Reihe von Plänen und Preisen für Unternehmen, Behörden, Bildungseinrichtungen und Privatpersonen.

Mitglieder haben Zugang zu Tausenden von Büchern, Schulungsvideos und Manuskripten von Verlagen wie O'Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology und Hunderten mehr in einer vollständig durchsuchbaren Datenbank. Wenn du mehr über Safari Books Online erfahren möchtest, besuche uns bitte online.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter http://bit.ly/ydkjs-async-performance aufrufen .

Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an

Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.

Finde uns auf Facebook: http://facebook.com/oreilly

Folge uns auf Twitter: http://twitter.com/oreillymedia

Schau uns auf YouTube: http://www.youtube.com/oreillymedia

Get Du kennst JS nicht: Asynchronität und Leistung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.