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

JavaScript-Interviewfragen

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.

Junior · keine Erfahrung / unter 1 JahrMiddle · 2–4 Jahre ErfahrungSenior · 5+ Jahre Erfahrung

Worum es geht

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

10 echte Fragen mit Antworten

Zu jeder Frage gibt es eine Musterantwort, mit der du deine eigene vergleichen kannst.

1

Welche Datentypen gibt es in JavaScript?

Antwort

Es gibt sieben Primitives — string, number, boolean, null, undefined, symbol, bigint — und alles andere ist ein Objekt, einschließlich Arrays und Funktionen. Primitives werden by value kopiert, Objekte by reference, und genau daher rührt die meiste Verwirrung darüber, warum die Änderung einer Variablen eine andere verändert hat. typeof null liefert 'object' zurück, und das ist ein Bug aus dem Jahr 1995, der sich nie beheben lässt, ohne das Web zu brechen.

2

Was ist der Unterschied zwischen `var`, `let` und `const`?

Antwort

var ist function-scoped und wird als undefined gehoisted; let und const sind block-scoped und befinden sich bis zur Deklaration in der temporal dead zone, weshalb ein früherer Zugriff einen Fehler wirft statt still undefined zurückzugeben. const verhindert das Rebinding der Variablen, nicht die Mutation des Objekts, auf das sie zeigt — const arr = [] erlaubt weiterhin arr.push(). Nimm standardmäßig const, verwende let, wenn du wirklich neu zuweisen musst, und var nie.

3

Was ist der Unterschied zwischen `==` und `===`?

Antwort

=== vergleicht Typ und Wert; == konvertiert vorher, nach Regeln, die dazu führen, dass null == undefined wahr ist, null == 0 aber falsch. Weil kaum jemand die komplette Tabelle im Kopf hat, lautet die praktische Regel: immer === verwenden. Die einzige vertretbare Ausnahme ist x == null als Kurzform, um gleichzeitig auf null und undefined zu prüfen.

4

Was ist eine Closure?

Antwort

Eine Funktion zusammen mit dem Scope, in dem sie erstellt wurde, auf den sie auch nach dem Ende der äußeren Funktion noch zugreifen kann. Das macht privaten State, Factory-Funktionen und Hooks überhaupt erst möglich — die innere Funktion hält eine lebende Referenz, keine Kopie. Die klassische Interview-Falle ist ein var in einer Schleife mit setTimeout, wo sich alle Callbacks eine Bindung teilen und denselben Wert ausgeben; let gibt jeder Iteration ihre eigene.

5

Was ist `this`, und wie wird es bestimmt?

Antwort

Dadurch, wie die Funktion aufgerufen wird, nicht wo sie definiert ist. Als Methode aufgerufen, ist this das Objekt vor dem Punkt; einfach aufgerufen, ist es im strict mode undefined; mit new aufgerufen, ist es das neue Objekt; und call, apply und bind setzen es explizit. Arrow-Funktionen haben kein eigenes this und übernehmen es aus dem umschließenden Scope — genau deshalb haben sie das Callback-Problem gelöst und genau deshalb sind sie als Objektmethoden falsch.

6

Wie funktioniert prototypische Vererbung?

Antwort

Jedes Objekt hat einen versteckten Link zu einem anderen Objekt, seinem Prototyp. Liest man eine Property, die nicht vorhanden ist, läuft die Engine diese Kette entlang, bis sie sie findet oder bei null ankommt. class ist Syntax darüber — sie erzeugt eine Konstruktorfunktion, deren prototype-Objekt die Methoden hält, sodass sich alle Instanzen eine Kopie jeder Methode teilen, statt jede ihre eigene mitzuführen.

7

Erkläre den Event Loop, Makrotasks und Mikrotasks.

Antwort

JavaScript läuft auf einem Thread mit einer Queue. Ist der Call-Stack leer, leert der Event Loop zuerst die komplette Microtask-Queue — Promise-Callbacks, queueMicrotask, MutationObserver — und nimmt sich erst danach einen einzigen Makrotask vor, etwa einen setTimeout-Callback oder ein Event. Deshalb läuft ein .then immer vor einem früher geplanten setTimeout(0), und deshalb kann eine endlose Kette von Mikrotasks das Rendering vollständig aushungern.

8

Was ist der Unterschied zwischen `Promise.all` und `Promise.allSettled`?

Antwort

all lehnt ab, sobald irgendein Promise ablehnt, und liefert dir von den übrigen nichts; allSettled resolved immer, mit einem Status pro Promise. Nutze all, wenn die ganze Operation ohnehin sinnlos ist, sobald ein Teil scheitert, und allSettled, wenn du wissen willst, welche Teile gescheitert sind. Und Achtung beim Unterschied zu sequenziellen awaits in einer Schleife — die laufen nacheinander ab, was meist ein unbeabsichtigter Performance-Bug ist.

9

Was ist der Unterschied zwischen einer flachen und einer tiefen Kopie?

Antwort

Eine flache Kopie — Spread oder Object.assign — kopiert nur die oberste Ebene, verschachtelte Objekte bleiben also geteilt, und ihre Mutation wirkt sich auf das Original aus. Eine tiefe Kopie dupliziert den ganzen Baum; structuredClone macht das nativ und kommt mit Zyklen, Map und Date klar, während der alte Trick JSON.parse(JSON.stringify(x)) still Funktionen, undefined und den Date-Typ verliert.

10

Was ist der Unterschied zwischen einer Arrow-Funktion und einer regulären Funktion?

Antwort

Eine Arrow-Funktion hat kein eigenes this, kein arguments, kein prototype, und sie kann nicht mit new aufgerufen werden. Sie übernimmt this lexikalisch von dort, wo sie definiert wurde — das macht sie richtig für Callbacks und falsch für Objekt- und Prototyp-Methoden. Auch als Konstruktor oder Generator lässt sie sich nicht verwenden.

🦎

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.

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

Lesenswert

Alle Artikel →

Weitere Spezialisierungen

🔍QA Manual🤖QA AutomationJava Backend🐍Python Backend🐘PHP-Backend🦫Go-Backend🟢Node.js-Backend💎Ruby on Rails🔷C++⚛️React Frontend💚Vue Frontend🅰️Angular FrontendNext.js🍏iOS (Swift)🟩Android (Kotlin)⚙️DevOps / SRE🗄️Data Engineer📈Business Analyst🎯Product Manager📋Project Manager🎨UI/UX Designer📣Marketing