Bonjour,
je rebondis sur le lien que tu as donn� (pour les futurs lecteurs et lectrices, si jamais le lien est mort, il s�agit de la doc de var). Le mot-cl� var est le plus ancien des moyens de d�clarer une variable en JavaScript. Les autres sont let et const, apparus plus tard. Il y a une diff�rence fondamentale : une d�claration let/const fait effet dans un bloc, c�est-�-dire le bloc d�une boucle for ou while ou autre, mais aussi le corps d�une fonction, en gros tout ce qui est entre accolades.
Code:
1 2 3 4 5 6 7 8
| const a = 1;
for (let i = 0; i < 10; i++) {
const b = 2;
// a, b et i sont accessibles ici
}
// ici seul a est accessible |
var, quant � lui, ne se pr�occupe que des fonctions, il se moque des � fronti�res � des boucles et autres blocs. Si tu as l�habitude de PHP, les variables d�clar�es avec var te seront plus famili�res.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| const a = 1;
const f = () => { // ceci est une fonction
var v = 3;
// a et v sont accessibles ici
};
for (let i = 0; i < 10; i++) {
var w = 4; // (*)
// a, w et i sont accessibles ici
}
// ici, a et w sont accessibles, mais pas v |
(Si tu fais tes propres tests, tu remarqueras peut-�tre que w est accessible avant sa d�claration, c�est une m�canique nomm�e hoisting (� hissage �), on ne va pas en parler maintenant.)
Une remarque � propos de la boucle forEach dans ton code : imax => {
} est une fonction, donc m�me avec var, une variable d�clar�e � l�int�rieur de la boucle sera restreinte � la port�e de la boucle. La solution la plus simple est celle que gabi7756 a donn�e.
Si tu pr�f�res �viter d�utiliser une fonction pour faire une boucle, alors la syntaxe for
of sera ton alli�e.
Pour finir, si tu souhaites �viter d�utiliser une globale (et c�est compr�hensible), tu peux cr�er une port�e let/const � gratuite � en utilisant simplement des accolades :
Code:
1 2 3 4
| {
let z = 33;
}
// z nest pas accessible ici |