So bestehst du das JavaScript-Vorstellungsgespräch: Top-Fragen und Antworten

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Wie man ein JavaScript-Vorstellungsgespräch besteht: Top-Fragen



Ein Vorstellungsgespräch für eine Stelle als JavaScript-Entwickler (insbesondere mit Fokus auf Node.js) ist nicht nur eine Überprüfung der Syntax. Arbeitgeber wollen ein tiefes Verständnis von Asynchronität, Gültigkeitsbereichen und der Funktionsweise des Event Loop sehen. In diesem Artikel haben wir die Top-Fragen zusammengestellt, die in Vorstellungsgesprächen wirklich gestellt werden, mit Codebeispielen und Erklärungen.



1. Closures — die Grundlage von funktionalem JS



Frage: "Was ist ein Closure und wie funktioniert es in Node.js?"



Ein Closure ist eine Funktion, die sich an ihre lexikalische Umgebung "erinnert", selbst nachdem die äußere Funktion ihre Ausführung beendet hat. Dies ist ein Schlüsselmechanismus für die Datenkapselung in JavaScript.



function createCounter() {  let count = 0;  return function() {    count++;    return count;  };}

const counter = createCounter();console.log(counter()); // 1console.log(counter()); // 2


Warum wird das gefragt: Closures liegen Modulen, Factory-Funktionen und Event-Handlern in Node.js zugrunde. Ohne das Verständnis von Closures ist die Arbeit mit asynchronen Callbacks nicht möglich.



2. Event Loop und Asynchronität (Async/Await, Promises)



Frage: "Erklären Sie, wie der Event Loop funktioniert. Was gibt dieser Code aus?"



console.log('1');

setTimeout(() => console.log('2'), 0);

Promise.resolve().then(() => console.log('3'));

console.log('4');


Antwort: 1, 4, 3, 2. Zuerst synchroner Code, dann Microtasks (Promise.then), dann Macrotasks (setTimeout).



Der Event Loop ist ein Mechanismus, der es Node.js ermöglicht, nicht-blockierende Operationen trotz Single-Threading auszuführen. Er besteht aus mehreren Phasen:

  • Timer — führen setTimeout/setInterval-Callbacks aus
  • I/O Callbacks — Verarbeitung abgeschlossener Ein-/Ausgabeoperationen
  • Poll (Abfrage) — Abruf neuer I/O-Ereignisse
  • Check — Ausführung von setImmediate()
  • Close Callbacks — Schließen von Verbindungen


Tipp: Zeigen Sie im Vorstellungsgespräch, dass Sie den Unterschied zwischen process.nextTick() und setImmediate() verstehen. nextTick wird vor der nächsten Phase des Event Loop ausgeführt, setImmediate in der Check-Phase.



3. Aufrufkontext (this) und Arrow Functions



Frage: "Was ist this in verschiedenen Situationen? Wie ändert man den Kontext?"



Der Wert von this wird dadurch bestimmt, wie die Funktion aufgerufen wird, nicht wo sie deklariert ist. In Node.js (strict mode) ist this in einer normalen Funktion undefined, im Browser dagegen window.



const obj = {  name: 'Node.js',  regularFunc: function() {    console.log(this.name);  },  arrowFunc: () => {    console.log(this.name);  }};

obj.regularFunc(); // 'Node.js'obj.arrowFunc(); // undefined (this wird aus dem äußeren Kontext übernommen)


Wie man den Kontext steuert:

  • call(thisArg, arg1, arg2) — ruft die Funktion mit angegebenem this und Argumenten auf
  • apply(thisArg, [args]) — ähnlich, aber Argumente werden als Array übergeben
  • bind(thisArg) — erstellt eine neue Funktion mit gebundenem this
  • Arrow Functions — haben kein eigenes this, verwenden den lexikalischen Kontext


4. Prototypen und Vererbung (Prototype Chain)



Frage: "Wie funktioniert die prototypische Vererbung in JavaScript? Was ist der Unterschied zu Klassen?"



JavaScript verwendet prototypische Vererbung: Jedes Objekt hat eine interne Referenz [[Prototype]] (zugänglich über __proto__ oder Object.getPrototypeOf()).



function Animal(name) {  this.name = name;}

Animal

Blogs

Buchempfehlungen