Ein paar grundsätzliche Begriffe und Konzepte in JavaScript

JavaScript ist Synchronous:
Synchronous bedeutet, dass eine Funktion ausgeführt wird und erst dann zur nächsten Funktion übergegangen wird, wenn die vorherige Funktion abgeschlossen ist. Das bedeutet, dass der Code blockiert wird, bis die Funktion abgeschlossen ist. Ein Beispiel für eine synchrone Funktion ist alert(). Wenn du alert() aufrufst, wird der Code blockiert, bis du auf “OK” klickst.

JavaScript ist Single Threaded:
Single Threaded bedeutet, dass JavaScript nur einen Thread hat, der den Code ausführt. Das bedeutet, dass JavaScript nur eine Sache gleichzeitig tun kann. Wenn JavaScript eine Funktion ausführt, kann es keine andere Funktion ausführen, bis die erste Funktion abgeschlossen ist.

Der Aufruf-Stapel oder Callstack:
Der Callstack ist eine Liste von Funktionen, die gerade ausgeführt werden. Wenn eine Funktion aufgerufen wird, wird sie dem Callstack hinzugefügt. Wenn die Funktion abgeschlossen ist, wird sie aus dem Callstack entfernt. Der Callstack ist wichtig, um zu wissen, welche Funktionen gerade ausgeführt werden und in welcher Reihenfolge.

Hoisting:
Hoisting ist ein Konzept in JavaScript, bei dem Variablen und Funktionen in den Speicher geladen werden, bevor der Code ausgeführt wird. Das bedeutet, dass du eine Variable oder Funktion verwenden kannst, bevor sie deklariert wurde. Zum Beispiel:

console.log(x); // undefined
var x = 5;

In diesem Beispiel wird x zuerst als undefined deklariert und dann später auf 5 gesetzt.

Der Unterschied zwischen undefined und null:
undefined bedeutet, dass eine Variable deklariert wurde, aber keinen Wert hat. null wird verwendet, um bewusst anzuzeigen, dass eine Variable keinen Wert oder kein Objekt enthält. Zum Beispiel:

var x;
console.log(x); // undefined

var y = null;
console.log(y); // null

Lexical Environment:
Das Lexical Environment ist der Ort, an dem eine Variable deklariert wurde. Das bedeutet, dass eine Variable in verschiedenen Umgebungen unterschiedliche Werte haben kann. Zum Beispiel:

var x = 5;

function foo() {
  var x = 10;
  console.log(x);
}

foo(); // 10
console.log(x); // 5

In diesem Beispiel hat x in der Funktion foo() den Wert 10, während x außerhalb der Funktion den Wert 5 hat.

Closures:
Closures ermöglichen es, dass eine Funktion auf Variablen aus ihrer äußeren Funktion zugreifen kann, auch nachdem die äußere Funktion abgeschlossen ist. Zum Beispiel:

function outer() {
  var x = 5;

  function inner() {
    console.log(x);
  }

  return inner;
}

var closure = outer();
closure(); // 5

In diesem Beispiel hat die Funktion inner() Zugriff auf die Variable x, die in der Funktion outer() deklariert wurde.

Event Loop:
Der Event Loop ist ein Mechanismus in JavaScript, der es ermöglicht, asynchrone Funktionen auszuführen. Das bedeutet, dass JavaScript eine Funktion ausführen kann, während eine andere Funktion noch ausgeführt wird. Der Event Loop ist wichtig, um zu verhindern, dass der Code blockiert wird. Ein Beispiel für eine asynchrone Funktion ist setTimeout(). Wenn du setTimeout() aufrufst, wird der Code nicht blockiert, sondern die Funktion wird nach einer bestimmten Zeit ausgeführt.

Gültigkeitsbereich einer Variable – der Scope:
Der Gültigkeitsbereich bezieht sich darauf, wo eine Variable im Code sichtbar und zugänglich ist. Variablen können global oder lokal innerhalb von Funktionen deklariert werden. Zum Beispiel:

var x = 5;

function foo() {
  var x = 10;
  console.log(x);
}

foo(); // 10
console.log(x); // 5

In diesem Beispiel hat x in der Funktion foo() den Wert 10, während x außerhalb der Funktion den Wert 5 hat.

Der Unterschied zwischen Parameter und Argument:
Ein Parameter ist ein Platzhalter in der Funktionsdefinition, während ein Argument ein tatsächlicher Wert ist, der beim Aufruf der Funktion übergeben wird.

Nach oben scrollen