P
prepair.app
Interview starten →
EnglishУкраїнськаРусскийDeutsch
🟨

Middle JavaScriptJavaScript-Interviewfragen

Middle · 2–4 Jahre Erfahrung

JavaScript-Interviews drehen sich um eine überschaubare Anzahl von Dingen, die die Sprache anders macht als alle anderen: Closures, `this`, Prototypen und den Event Loop. Wer die im Griff hat, kommt bei den meisten anderen Fragen automatisch mit — unten findest du die häufigsten, jeweils mit einer Musterantwort. Middle: tieferes Verständnis, Optimierung und reale Arbeitssituationen.

Probier es aus — kein Konto nötig
Deine Frage wird vorbereitet…

Themen zur Vorbereitung

Typen und Coercion
Closures und Scope
`this` und Prototypen
Der Event Loop und Async
Promises und async/await
DOM, Events und der Browser

6 Fragen auf Middle-Niveau mit Antworten

1

Nenne einen praktischen Einsatz einer Closure und den klassischen Bug damit.

Antwort

Praktisch: ein Counter oder ein Cache, dessen State von außen nicht erreichbar sein darf, eine Function-Factory oder alles, was sich einen Wert zwischen Aufrufen merken muss. Der klassische Bug ist for (var i = 0; ...) setTimeout(() => console.log(i)), das jedes Mal den finalen Wert ausgibt, weil alle Callbacks dieselbe Bindung einschließen. let erzeugt pro Iteration eine neue Bindung und behebt das.

2

Wie wird `this` gebunden, und was bricht es?

Antwort

Vier Regeln, nach Priorität geordnet: new, dann explizites call/apply/bind, dann ein Methodenaufruf, bei dem this das Objekt vor dem Punkt ist, und schließlich der Default — im strict mode undefined. Es bricht, wenn eine Methode als Callback übergeben wird, weil der Punkt beim Aufruf schon fehlt. Fixes sind bind an der Übergabestelle, ein Arrow-Wrapper oder das Definieren der Methode als Class-Field.

3

Was ist der Unterschied zwischen einer `class` und einer Konstruktorfunktion?

Antwort

Zur Laufzeit fast keiner — class ist Syntax über demselben Prototyp-Mechanismus. Was tatsächlich zählt: Class-Bodies laufen immer im strict mode, Class-Deklarationen sind vor ihrer Zeile nicht nutzbar, Methoden sind nicht enumerable, und ein Class-Aufruf ohne new wirft einen Fehler statt still das Falsche zu tun. extends und super sind wirklich einfacher, als Prototypen von Hand zu verdrahten.

4

In welcher Reihenfolge wird hier ausgegeben, und warum?

Antwort

Bei einem setTimeout(fn, 0) und einem bereits aufgelösten Promise.then, die im selben Tick geplant werden, läuft der Promise-Callback zuerst. Der Grund: Nachdem das aktuelle Skript fertig ist, leert die Engine die komplette Microtask-Queue, bevor sie sich einen einzigen Makrotask aus der Timer-Queue nimmt. Daraus folgt, dass eine Microtask, die eine weitere Microtask plant, das Rendering unbegrenzt blockieren kann, während setTimeout das nicht kann.

5

Wie führst du asynchrone Arbeit parallel statt sequenziell aus?

Antwort

await in einer Schleife ist sequenziell — jede Iteration wartet auf die vorherige. Um parallel zu laufen, startest du zuerst alle Promises und awaitest sie dann gemeinsam mit Promise.all. Greif zu allSettled, wenn ein teilweises Scheitern akzeptabel ist, zu race für ein Timeout, zu any für den ersten Erfolg. Macht man das falsch, wird aus einem 200-ms-Request schnell zwanzig Requests à 200 ms.

6

Wodurch entstehen Memory Leaks im Browser, und wie findest du sie?

Antwort

Losgelöste DOM-Knoten, auf die JavaScript noch referenziert, nie entfernte Listener, nie gecancelte Timer und Closures, die große Objekte festhalten — dazu Caches, die nur wachsen. Du findest sie, indem du in den DevTools vor und nach einer wiederholten Aktion Heap-Snapshots aufnimmst und vergleichst, was übrig geblieben ist. WeakMap und WeakSet halten ihre Keys weak, weshalb sie die richtige Struktur sind, um Daten an DOM-Knoten zu hängen.

🦎

Antworten lesen reicht nicht

Im echten Interview sprichst du unter Druck. Cam stellt genau diese Fragen, bewertet jede Antwort und zeigt dir genau, was du verbessern musst.

Middle JavaScript-Interview üben →
Kostenlos · 3 Interviews im Monat

Weitere Level — JavaScript

Junior JavaScriptSenior JavaScriptAlle JavaScript-Fragen

Weitere Spezialisierungen

🔍Middle QA Manual🤖Middle QA AutomationMiddle Java Backend🐍Middle Python Backend🐘Middle PHP-Backend🦫Middle Go-Backend🟢Middle Node.js-Backend💎Middle Ruby on Rails🔷Middle C++⚛️Middle React Frontend