"Zuweisung zu nicht deklarierter Variable" bei Verwendung von "for (i = 0; ..)"

8

Hey Ich versuche, eine Liste aller Eingabefelder in einem HTML-Formular zu erhalten, aber ich bekomme folgenden Fehler (in Firebug):

%Vor%

Ich verstehe nicht, wie "ich" nicht deklariert wird, weil das der erste Teil von "für" ist. Das ist meine Formel

%Vor%     
sgp667 03.04.2014, 22:46
quelle

3 Antworten

18
%Vor%

Sie müssen es mit var

deklarieren

Wie T.J in seiner Antwort sagte, wird, da Sie den strikten Modus verwenden, kein implizites globales gemacht. Deshalb wird ein Fehler ausgelöst.

    
Sterling Archer 03.04.2014, 22:47
quelle
14

Es heißt nicht i ist nicht zugewiesen , es heißt, es ist nicht deklariert . Der Code deklariert niemals eine Variable i , versucht dann jedoch, ihm einen Wert zuzuweisen (im Initialisierungsteil der for -Schleife). Anscheinend verwenden Sie den strikten Modus (gut!), Und daher gibt Ihnen die Engine einen Fehler, anstatt ein implizite globale .

Deklarieren Sie i mit var in der Funktion, z. B .:

%Vor%

Randnotiz: Wenn Sie in ES6 ankommen, können Sie let und scope i nur zur for -Anweisung verwenden. Aber jetzt, verwenden Sie var .

    
T.J. Crowder 03.04.2014 22:47
quelle
0
___ qstnhdr ___ "Zuweisung zu nicht deklarierter Variable" bei Verwendung von "for (i = 0; ..)" ___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer22850387 ___
%Vor%

Sie müssen es mit %code%

deklarieren

Wie T.J in seiner Antwort sagte, wird, da Sie den strikten Modus verwenden, kein implizites globales gemacht. Deshalb wird ein Fehler ausgelöst.

    
___ qstntxt ___

Hey Ich versuche, eine Liste aller Eingabefelder in einem HTML-Formular zu erhalten, aber ich bekomme folgenden Fehler (in Firebug):

%Vor%

Ich verstehe nicht, wie "ich" nicht deklariert wird, weil das der erste Teil von "für" ist. Das ist meine Formel

%Vor%     
___ answer22850386 ___

Es heißt nicht %code% ist nicht zugewiesen , es heißt, es ist nicht deklariert . Der Code deklariert niemals eine Variable %code% , versucht dann jedoch, ihm einen Wert zuzuweisen (im Initialisierungsteil der %code% -Schleife). Anscheinend verwenden Sie den strikten Modus (gut!), Und daher gibt Ihnen die Engine einen Fehler, anstatt ein implizite globale .

Deklarieren Sie %code% mit %code% in der Funktion, z. B .:

%Vor%

Randnotiz: Wenn Sie in ES6 ankommen, können Sie %code% und scope %code% nur zur %code% -Anweisung verwenden. Aber jetzt, verwenden Sie %code% .

    
___
Sankar_k 09.02.2017 11:30
quelle

Tags und Links