JS Fehler 'redeclaration' von var, wenn es in der ersten Zeile im Programm ist?

9

SCRPT5039: Redeclaration of const property line 1 character 1

line1: var editObj = null;

Dies ist der Anfang der Datei und ich habe überprüft, um sicherzustellen, dass diese Variable nicht in anderen js-Dateien aufgerufen wird. Sagt es, dass ich es später redeklare? (Wenn diese Zeilenreferenz nicht nützlich ist) oder was ist daran falsch?

    
Damon 28.09.2011, 04:04
quelle

7 Antworten

3

BEARBEITEN: Es wurde behoben. Für mich jedenfalls. Ich habe diesen Fehler vor dem Deklarationsfehler erhalten:

%Vor%

Dies deutet darauf hin, dass der IE einen Fehler gefunden hat und lädt die Seite im Quirks-Modus erneut. Wenn Sie die Seite zweimal laden, wird davon ausgegangen, dass alles doppelt deklariert ist. Also ist die Lösung zu finden, was IE nicht mochte.

Zuerst habe ich die Seite durch den Online-HTML-Validator geleitet. Als nächstes lief mein Javascript durch jsLint . Nach all dem schien IE9 glücklich zu sein. Und als Bonus habe ich besseren Qualitätscode. Ich hoffe.

    
Chris Tolworthy 15.01.2012, 15:07
quelle
5

Ich habe diesen Fehler mit dem folgenden Code erhalten:

%Vor%

Ich hatte diese Deklaration zur Umgehung eines Knotenfehlers hinzugefügt, als ich den folgenden Code verwendete:

%Vor%

Ohne die obige Deklaration würde sich der Knoten beschweren. Am Ende habe ich mich dafür entschieden, die gleiche Datei zwischen Knoten- und Browser-Implementierungen zu kopieren / einfügen, anstatt zu versuchen, sie zu teilen.

    
Curt Williams 08.02.2012 07:51
quelle
3

Ich hatte ein ähnliches Problem mit dem gleichen Fehler, aber meine erste Codezeile war ein alert(0); , das ich eingefügt hatte, um sicherzustellen, dass das Skript geladen wurde! Interessanterweise wurde das Skript entsprechend den IE9-Entwicklertools geladen, aber die erste Zeile wurde nie ausgeführt und der Fehler wurde auf diese alert(0); als Neudeklaration gesetzt. Ich habe sogar Zeilen und Leerzeichen davor eingefügt und die Zeilen- und Zeichenanzahl entsprechend geändert. Dies war jedoch (offensichtlich) nicht die Sache, die neu deklariert wurde, weil es nicht einmal eine Deklaration ist, geschweige denn eine Deklaration!

Ich löschte Chunks vom Ende des Skripts bis zur Ausführung von alert(0); (was darauf hinwies, dass das Skript geladen und erfolgreich geparst worden war), und ich entdeckte, dass die Zeile folgendes aufwies:

%Vor%

Stellt sich heraus, dass IE9 bereits eine window.screen hat, mit der diese Deklaration kollidiert ist, und das Umbenennen von screen in eScreen das Problem behoben hat.

Meine Antwort lautet also: Vertrauen Sie nicht dem Hinweis von IE9, wo die Deklaration ist!

(Es ist auch erwähnenswert, dass das Skript in seiner ursprünglichen Form auf IE7, IE8 und IE10 lief, nur nicht auf IE9.)

    
Richard Wiseman 07.06.2013 12:07
quelle
1

Ich hatte das gleiche Problem in meinem Code und es stellt sich heraus, dass IE falsche Zeile zeigen, wenn die Neueinweisung erscheint. In meinem Fall war es Geschichte, die ich später im Code verwende. Sie sollten den gesamten Code für die Deklaration der Konstanten überprüfen. Sie können versuchen, einen Teil des Codes zu kommentieren und zu sehen, wann dieser Fehler ausgegeben wird.

    
jcubic 06.03.2013 09:53
quelle
1

Der Fehler tritt auf, weil Sie eine globale / lokale Variable deklariert haben, die der Standard-Browser-Eigenschaft entspricht. Etwas wie

%Vor%

Versuchen Sie, eine solche Deklaration zu entfernen / kommentieren und die Auswirkungen zu sehen.

    
Rajdeep 06.05.2016 10:11
quelle
0

Ich hatte den gleichen Fehler und stieß auf diesen Beitrag. Obwohl ich nicht das gleiche Problem hatte wie das OP, dachte ich, ich würde meine Lösung teilen, falls andere meinen Fehler machen und hier ankommen. Ich habe den Fehler in einer separaten js-Datei erhalten. Nach der Vereinfachung habe ich festgestellt, dass ich den Fehler aus dem folgenden Code generieren konnte:

%Vor%

Der Fehler sagte, dass es von der ersten Zeile war. Jedoch wurde foo nicht neu deklariert. Das Problem war, dass localData an anderer Stelle (nicht in meinem Code) verwendet worden sein muss. Unabhängig davon, wie weit in der Datei localData deklariert wurde, ist der Fehler in der ersten echten Codezeile enthalten.

Wenn also andere Lösungen nicht funktionieren, versuchen Sie, jede Variable in der Codedatei umzubenennen, um festzustellen, welche das Problem verursacht. Vertrauen Sie nicht, dass der Debugger auf die richtige Zeile zeigt.

Getroffen: HTML5 / JS Window Store App.

    
Hypnovirus 04.12.2013 18:21
quelle
0

Als ich einen Fehler beim Zusammenfügen von Git fand, stellte ich fest, dass ich das Skript zweimal in meinen HTML-Code eingefügt hatte. Auf diese Weise wurde die Variable beim zweiten Ausführen des Skripts neu deklariert.

Und es gab mir nur den Fehler für die erste const , was für mich verwirrend war, als ich versuchte, die Variable zu entfernen oder eine andere Datei hinzuzufügen, gab mir immer den Fehler für die erste Zeile.

    
kim366 28.03.2018 09:18
quelle

Tags und Links