ReferenceError: "x" ist nicht definiert

Der JavaScript-Fehler "variable is not defined" tritt auf, wenn irgendwo auf eine nicht existierende Variable verwiesen wird.

Nachricht

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)

Fehlertyp

Was ist schiefgelaufen?

Es wird auf eine nicht existierende Variable verwiesen. Diese Variable muss deklariert werden, oder Sie müssen sicherstellen, dass sie in Ihrem aktuellen Skript oder Scope verfügbar ist.

Hinweis: Wenn Sie eine Bibliothek laden (wie jQuery), stellen Sie sicher, dass sie geladen ist, bevor Sie auf Bibliotheksvariablen wie "$" zugreifen. Platzieren Sie das <script>-Element, das die Bibliothek lädt, vor Ihrem Code, der sie verwendet.

Beispiele

Variable nicht deklariert

js
foo.substring(1); // ReferenceError: foo is not defined

Die Variable "foo" ist nirgendwo definiert. Sie muss ein String sein, damit die String.prototype.substring()-Methode funktioniert.

js
const foo = "bar";
foo.substring(1); // "ar"

Falscher Scope

Eine Variable muss im aktuellen Ausführungskontext verfügbar sein. Variablen, die innerhalb einer Funktion definiert sind, können von keinem Ort außerhalb der Funktion aus zugegriffen werden, da die Variable nur im Scope der Funktion definiert ist.

js
function numbers() {
  const num1 = 2;
  const num2 = 3;
  return num1 + num2;
}

console.log(num1); // ReferenceError num1 is not defined.

Eine Funktion kann jedoch auf alle Variablen und Funktionen zugreifen, die im Scope definiert sind, in dem sie sich befindet. Mit anderen Worten, eine im globalen Scope definierte Funktion kann auf alle im globalen Scope definierten Variablen zugreifen.

js
const num1 = 2;
const num2 = 3;

function numbers() {
  return num1 + num2;
}

console.log(numbers()); // 5

Siehe auch