JavaScript Brain Teasers
JavaScript Brain Teasers
Zusammenfassung:
Einleitung
Das Buch „JavaScript Brain Teasers“ von Fr. Kinlan (2019, 200 Seiten) ist kein weiteres Lehrbuch über Syntax oder Frameworks. Es ist eine Sammlung anspruchsvoller Rätselaufgaben, die Sie dazu bringen, scheinbar vertraute JavaScript-Konstrukte aus einem neuen Blickwinkel zu betrachten. Im Gegensatz zu klassischen Aufgaben auf LeetCode liegt der Schwerpunkt hier auf den Feinheiten der Sprache, dem nicht offensichtlichen Verhalten von Closures, Prototypen, Asynchronität und dem Kontext this. Das Buch ist für die Laufzeitumgebung Node.js geschrieben, aber alle Beispiele lassen sich leicht in jedem modernen Browser nachvollziehen.
Worum geht es in dem Buch
„JavaScript Brain Teasers“ besteht aus 50 (oder etwa) sorgfältig ausgewählten Rätseln. Jede Aufgabe wird als kurzes Code-Fragment präsentiert, woraufhin der Leser aufgefordert wird, zu erraten, was die Konsole ausgibt (oder was das Ergebnis der Ausführung sein wird). Es folgt eine detaillierte Analyse: warum es genau so funktioniert hat, welche Sprachmechanismen beteiligt sind und wie man solche „Überraschungen“ in der realen Entwicklung vermeidet. Die Themen umfassen:
- Typkonvertierung und lose Gleichheit (
==vs===); - Closures und lexikalische Umgebung;
- Prototypische Vererbung und die Prototypenkette;
- Asynchronität: Callbacks, Promises, Event Loop;
- Der Kontext
thisund seine nicht offensichtlichen Bindungen; - Das Verhalten von
var,let,constin Schleifen und Blöcken; - „Fallstricke“ bei der Arbeit mit Arrays und Objekten;
- Besonderheiten der Operatoren
typeof,instanceof,delete.
Für wen ist dieses Buch
Das Buch richtet sich an praktizierende JavaScript-Entwickler auf Junior+- und Middle-Niveau. Anfängern, die gerade erst anfangen, die Sprache zu lernen, wird es zu schwierig und möglicherweise demotivierend erscheinen. Diejenigen jedoch, die bereits seit mindestens einem halben bis einem Jahr JavaScript-Code schreiben, werden darin unschätzbares Material zur Vertiefung ihres Verständnisses finden. Das Buch wird auch für diejenigen nützlich sein, die sich auf technische Vorstellungsgespräche vorbereiten: Viele Aufgaben ähneln stark den „kniffligen Fragen“ aus Interviews in großen IT-Unternehmen.
Was der Leser lernen wird
Nach der Durcharbeitung aller Rätsel wird der Leser:
- Keine Angst mehr vor impliziter Typkonvertierung haben und lernen, deren Ergebnisse vorherzusagen;
- Den Mechanismus der Funktionsweise von
thisin verschiedenen Kontexten (global, Objektmethode, Konstruktor, Pfeilfunktion) tiefgreifend verstehen; - Die Nuancen der Funktionsweise des Event Loop und der Microtask-Queue meistern;
- Lernen, echte Probleme von „lautstarken“ Sprachbesonderheiten zu unterscheiden;
- In der Lage sein, zuverlässigeren und vorhersagbareren Code zu schreiben und häufige Fallstricke zu vermeiden;
- Die Fähigkeit verbessern, fremden Code zu lesen und versteckte Fehler zu finden.
Stärken
Der Hauptvorteil des Buches ist das Format. Anstelle von langweiliger Theorie erhalten Sie eine interaktive Erfahrung: Sie lesen Code, stellen eine Vermutung an, überprüfen sich selbst, lesen die Erklärung. Das ist sehr effektiv zum Einprägen. Der Autor zeigt nicht nur „Magie“, sondern erklärt die internen Mechanismen unter Bezugnahme auf die ECMAScript-Spezifikation. Ein weiterer Pluspunkt ist die Kompaktheit: 200 Seiten ohne überflüssige Füllwörter, nur das Wesentliche. Das Buch ist gut strukturiert: von einfachen zu schwierigen Aufgaben mit allmählicher Zunahme der Tiefe. Hervorzuheben ist, dass alle Beispiele für den modernen Standard ES6+ relevant sind (obwohl das Buch 2019 erschienen ist, sind die grundlegenden Konzepte nicht veraltet).
Empfehlung
Ich empfehle „JavaScript Brain Teasers“ allen, die vom Niveau „ich schreibe einfach Code“ zum Niveau „ich verstehe, wie die Sprache funktioniert“ übergehen möchten. Es ist ein hervorragendes Gehirntraining, das man häppchenweise lesen kann – ein bis zwei Aufgaben pro Tag. Das Buch ist auch ein gutes Geschenk für einen Entwicklerkollegen, der gerne Rätsel löst. Wenn Sie JavaScript unterrichten, können Sie die Aufgaben aus dem Buch als Aufwärmübung zu Beginn des Unterrichts verwenden. Die einzige Einschränkung: Man sollte es nicht absoluten Anfängern geben – besser ist es, zuerst die Grundlagen mit einem klassischen Lehrbuch (z. B. „Eloquent JavaScript“) zu erlernen.