- Web
- JavaScript
- Référence
- Référence des erreurs JavaScript
- SyntaxError: for-in loop head declarations may not have initializers
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
SyntaxError: for-in loop head declarations may not have initializers
Message
SyntaxError: for-in loop head declarations cannot have an initializer (Edge) SyntaxError: for-in loop head declarations may not have initializers (Firefox) SyntaxError: for-in loop variable declaration may not have an initializer. (Chrome)
Type d'erreur
SyntaxError, uniquement en mode strict.
Quel est le problème ?
L'en-tête d'une boucle for...in contient une expression d'initialisation, c'est-à-dire qu'une variable est déclarée et qu'on lui affecte une valeur. Ceci n'est pas autorisé en mode strict (et ignoré en mode non-strict).
Exemples
Cet exemple déclenchera une exception SyntaxError :
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
Boucle for-in valide
On peut retirer l'initialisateur de l'en-tête de la boucle :
"use strict";
var obj = { a: 1, b: 2, c: 3 };
for (var i in obj) {
console.log(obj[i]);
}
Parcours d'un tableau
Il ne faut pas utiliser de boucle for...in pour parcourir un tableau (Array). Peut-être souhaitiez-vous utiliser une boucle for pour parcourir le tableau ? Cette boucle for permet également d'utiliser un initialisateur :
var arr = ["a", "b", "c"];
for (var i = 2; i < arr.length; i++) {
console.log(arr[i]);
}
// "c"
Voir aussi
Aider à améliorer MDN
Cette page a été modifiée le par les contributeur·ice·s du MDN.