Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
ReferenceError: Zuweisung an nicht deklarierte Variable "x"
Die im JavaScript-Strict-Modus auftretende Ausnahme "Zuweisung an nicht deklarierte Variable" tritt auf, wenn ein Wert einer nicht deklarierten Variable zugewiesen wird.
In diesem Artikel
Nachricht
ReferenceError: x is not defined (V8-based)ReferenceError: assignment to undeclared variable x (Firefox)ReferenceError: Can't find variable: x (Safari)
Fehlertyp
ReferenceError nur imStrict-Modus.
Was ist schiefgelaufen?
Ein Wert wurde einer nicht deklarierten Variable zugewiesen.Mit anderen Worten: Es wurde eine Zuweisung ohne dasvar-Schlüsselwort vorgenommen.Es gibt einige Unterschiede zwischen deklarierten und nicht deklarierten Variablen, die zu unerwarteten Ergebnissen führen können, weshalb JavaScript im Strict-Modus einen Fehler anzeigt.
Drei Dinge, die zu deklarierten und nicht deklarierten Variablen zu beachten sind:
- Deklarierte Variablen sind im Ausführungskontext, in dem sie deklariert wurden, eingeschränkt.Nicht deklarierte Variablen sind immer global.
- Deklarierte Variablen werden erstellt, bevor irgendein Code ausgeführt wird.Nicht deklarierte Variablen existieren erst, wenn der Code, der ihnen etwas zuweist, ausgeführt wird.
- Deklarierte Variablen sind eine nicht konfigurierbare Eigenschaft ihres Ausführungskontextes (Funktion oder global).Nicht deklarierte Variablen sind konfigurierbar (z. B. können sie gelöscht werden).
Für weitere Details und Beispiele siehe die Referenzseite zuvar.
Fehler über Zuweisungen an nicht deklarierte Variablen treten nur imStrict-Modus-Code auf.In nicht-striktem Code werden sie stillschweigend ignoriert.
Beispiele
>Ungültige Fälle
In diesem Fall ist die Variable "bar" eine nicht deklarierte Variable.
function foo() { "use strict"; bar = true;}foo(); // ReferenceError: assignment to undeclared variable barGültige Fälle
Um "bar" zu einer deklarierten Variable zu machen, können Sie einlet-,const- odervar-Schlüsselwort davor setzen.
function foo() { "use strict"; const bar = true;}foo();