Maison >interface Web >js tutoriel >Comment « let » affecte-t-il le comportement de la boucle For et la portée des variables en JavaScript ?

Comment « let » affecte-t-il le comportement de la boucle For et la portée des variables en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-14 03:20:10874parcourir

How Does `let` Affect For Loop Behavior and Variable Scoping in JavaScript?

Comprendre la portée de let et de bloc avec les boucles For

let évite les déclarations en double et permet d'utiliser des variables dans les fermetures. Cependant, son application aux boucles for peut être quelque peu déroutante. Dans ce contexte, let enferme chaque itération dans un nouvel environnement lexical, liant la variable de boucle à sa propre portée distincte.

Considérez le code suivant :

// prints '10' 10 times
for (var i = 0; i < 10; i++) { process.nextTick(_ => console.log(i)) }

// prints '0' through '9'
for (let i = 0; i < 10; i++) { process.nextTick(_ => console.log(i)) }

Dans la première boucle, var est utilisé, ce qui crée une variable globale. Par conséquent, chaque itération de la boucle accède à la même variable globale i, ce qui donne la sortie « 10 » dix fois.

Dans la deuxième boucle, let est utilisé, créant une nouvelle portée de bloc pour chaque itération. Cela signifie que chaque itération a sa propre variable i distincte, isolée des autres. Par conséquent, la sortie affiche de « 0 » à « 9 ».

Ce mécanisme est plus qu'un simple sucre syntaxique. Cela implique de créer un environnement lexical unique pour chaque itération, en sauvegardant la variable de boucle dans sa portée exclusive.

Pour illustrer, le code « désucré » de la boucle var se développe en une simple séquence linéaire d'étapes. En revanche, le code « désucré » pour la boucle let introduit des blocs entre accolades pour délimiter explicitement la portée de chaque itération, reflétant l'environnement lexical distinct de chaque itération.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn