ReferenceError: "x" ist nicht definiert

Der JavaScript-Fehler "variable ist nicht definiert" tritt auf, wenn irgendwo auf eine nicht vorhandene 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 irgendwo auf eine nicht vorhandene Variable verwiesen. Diese Variable muss deklariert werden oder Sie müssen sicherstellen, dass sie in Ihrem aktuellen Skript oder Gültigkeitsbereich verfügbar ist.

Hinweis: Wenn Sie eine Bibliothek laden (wie jQuery), stellen Sie sicher, dass sie geladen ist, bevor Sie auf Bibliotheksvariablen zugreifen, wie z.B. "$". 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 "foo"-Variable ist nirgends definiert. Sie muss ein String sein, damit die String.prototype.substring()-Methode funktioniert.

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

Falscher Gültigkeitsbereich

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

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

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

Jedoch kann eine Funktion auf alle Variablen und Funktionen zugreifen, die innerhalb des Gültigkeitsbereichs definiert sind, in dem sie selbst definiert ist. Mit anderen Worten, eine im globalen Gültigkeitsbereich definierte Funktion kann auf alle im globalen Gültigkeitsbereich definierten Variablen zugreifen.

js
const num1 = 2;
const num2 = 3;

function numbers() {
  return num1 + num2;
}

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

Siehe auch