Quelle est la différence entre l'utilisation de let et var en JavaScript?

Quand devriez-vous utiliser let over var? Et pourquoi? Découvrons-le!

Dans JavaScript moderne, nous avons 3 façons de déclarer une variable et de lui attribuer une valeur:

  • const
  • let
  • var

Lorsque je travaille avec des variables en JavaScript, j'utilise toujours par défautconst. Cela garantit que la valeur ne peut pas être réaffectée, et il est donc plus sûr à utiliser.

Mais quand j'ai besoin de redéclarer une variable plus tard, j'utilise toujourslet.

Je n'ai pas utilisévardepuis des années, et pour moi, c'est juste là pour des raisons de compatibilité ascendante, et je lève toujours un sourcil quand je le vois utilisé.

Pourquoi?

Première,letacadrage sensible.

La même portée qui est utilisée dans plus ou moins tous les langages de programmation courants, la portée des blocs, dicte que les variables déclarées en utilisantletsont étendues au bloc le plus proche.

varà la place est un peu plus étrange, car il a une portée de fonction, ce qui signifie que les variables déclaréesvarsont étendues à la fonction la plus proche.

Cela a des implications pratiques. Par exemple, une variable est déclarée à l'intérieur d'unifou utilisé commeforitérateur de boucle. Utilisantletle rend local à ces 2 blocs. Utilisantvar, cependant, permet à la variable d'être disponible en dehors de ce bloc, ce qui peut entraîner des bogues.

Utilisez toujours l'outil qui vous donne le moins de puissance, pour vous assurer d'avoir un contrôle maximal sur celui-ci.Un grand pouvoir implique de grandes responsabilités.

Une autre raison de préférerletestlevage. Aimerconst,letles variables ne sont pas levées, mais elles sont initialisées lors de leur évaluation.

varà la place, les variables sont hissées en haut de la fonction, et en tant que telles, elles sont disponibles même dans les lignesavant queleur déclaration. Bizarre, non?

Troisième raison: lorsque vous déclarez unletvariable avec le même nom qu'une qui existe déjà, vous obtenez une erreur (dansMode strict).

Enfin, une autre grande différence: si vous déclarez unvarvariable en dehors de toute fonction, elle est affectée à laobjet global, ce qui signifiewindowdans le navigateur.letne fonctionne pas de cette manière; la variable est disponible, mais pas attachée à l'objet global, elle n'est donc pas accessible depuis l'extérieur de votre fichier.

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: