Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. JavaScript-Fehlerreferenz
  5. SyntaxError: for-in Schleifenkopf-Deklarationen dürfen keine Initialisierer haben

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

SyntaxError: for-in Schleifenkopf-Deklarationen dürfen keine Initialisierer haben

Die JavaScript-Strict-Mode-ausschließliche Ausnahme"for-in Schleifenkopf-Deklarationen dürfen keine Initialisierer haben"tritt auf, wenn der Kopf einerfor...in Schleifeeinen Initialisierungsausdruck enthält, wie zum Beispielfor (var i = 0 in obj). Dies ist in for-in Schleifen im Strict-Mode nichterlaubt. Darüber hinaus sind lexikalische Deklarationen mit Initialisierern wiefor (const i = 0 in obj) auch außerhalb des Strict-Modes nicht erlaubt.

Meldung

SyntaxError: for-in loop variable declaration may not have an initializer. (V8-based)SyntaxError: for-in loop head declarations may not have initializers (Firefox)SyntaxError: a lexical declaration in the head of a for-in loop can't have an initializer (Firefox)SyntaxError: Cannot assign to the loop variable inside a for-in loop header. (Safari)

Fehlertyp

SyntaxError.

Was ist schief gelaufen?

Der Kopf einerfor...in Schleife enthält einen Initialisierungsausdruck.Das heißt, eine Variable wird deklariert und ein Wert zugewiesenfor (var i = 0 in obj).Im Nicht-Strict-Mode wird diese Kopf-Deklaration stillschweigend ignoriert und verhält sich wiefor (var i in obj).ImStrict-Mode wird jedoch einSyntaxError ausgelöst. Darüber hinaus sind lexikalische Deklarationen mit Initialisierern wiefor (const i = 0 in obj) auch außerhalb des Strict-Modes nicht erlaubt und führen immer zu einemSyntaxError.

Beispiele

Dieses Beispiel löst einenSyntaxError aus:

js
const obj = { a: 1, b: 2, c: 3 };for (const i = 0 in obj) {  console.log(obj[i]);}// SyntaxError: for-in loop head declarations may not have initializers

Gültige for-in Schleife

Sie können den Initialisierer (i = 0) im Kopf der for-in Schleife entfernen.

js
const obj = { a: 1, b: 2, c: 3 };for (const i in obj) {  console.log(obj[i]);}

Array-Iteration

Die for...in Schleifesollte nicht für die Array-Iteration verwendet werden.Haben Sie vor, einefor Schleife anstelle einerfor-in Schleife zu verwenden, um einArray zu iterieren? Diefor Schleife erlaubt es Ihnen, dann auch einen Initialisierer festzulegen:

js
const arr = ["a", "b", "c"];for (let i = 2; i < arr.length; i++) {  console.log(arr[i]);}// "c"

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp