localement, let est limité au bloque tandis que var est limité à la fonction (globalement, il n’y a pas de différence)
J'essaye au possible d'écrire des fonctions courtes donc effectivement, re-déclarer deux fois la même variable dans une même fonction ne m'arrive pas souvent. Mais il est possible que ça soit intéressant dans d'autres cadres. En tout cas, ça ne permet plus d'écrire ce genre d'horreur :
Non, en mode strict, ce qu'on ne peut pas faire, c'est redéclarer la même variable deux fois dans un même scope.
Pour faire une "constante" (*), il faut utiliser const.
Je parlais de "hoisting" plus haut, le var peut être piégeux à cause de ça, let et const ne te permettent pas d'utiliser les variables avant leur déclaration (oui ça semble idiot de faire ça, mais pas mal de développeurs JavaScript usaient et abusaient de ça), et donc, n'avaient pas forcément conscience qu'en déclarant un var toto en plein milieu d'une fonction, toto était en fait remonté en haut de la fonction par l'interpréteur. let est ce que var aurait dû être dès le départ.
Comme === est ce que == aurait dû être dès le départ.
On constate que de nombreuses améliorations des différentes moutures de JavaScript ont pour objectif de corriger les erreurs de jeunesses du langage.
(*) en réalité, seule la valeur de variable est constante, on ne peut pas utiliser const pour faire réellement de l'immutabilité, par exemple.
constobj={a:4};obj.a=5;// parfaitement autorisé
En pratique, la "fausse" immutabilité de const fait que ce dernier est largement plus utilisé que let dans les programmes depuis ES6. A vue de pif, je dirais que j'utilise 15 fois plus de const que de let. (et plus aucun var)
[^] # Re: Sur le code
Posté par Guillaume Denry (site web personnel) . En réponse au journal Balance virtuelle, application éducative javascript. Évalué à 2. Dernière modification le 10 septembre 2019 à 16:22.
J'essaye au possible d'écrire des fonctions courtes donc effectivement, re-déclarer deux fois la même variable dans une même fonction ne m'arrive pas souvent. Mais il est possible que ça soit intéressant dans d'autres cadres. En tout cas, ça ne permet plus d'écrire ce genre d'horreur :
Avec
let, ça ne passe pas.Non, en mode strict, ce qu'on ne peut pas faire, c'est redéclarer la même variable deux fois dans un même scope.
Pour faire une "constante" (*), il faut utiliser
const.Je parlais de "hoisting" plus haut, le
varpeut être piégeux à cause de ça,letetconstne te permettent pas d'utiliser les variables avant leur déclaration (oui ça semble idiot de faire ça, mais pas mal de développeurs JavaScript usaient et abusaient de ça), et donc, n'avaient pas forcément conscience qu'en déclarant unvar totoen plein milieu d'une fonction, toto était en fait remonté en haut de la fonction par l'interpréteur.letest ce quevaraurait dû être dès le départ.Comme
===est ce que==aurait dû être dès le départ.On constate que de nombreuses améliorations des différentes moutures de JavaScript ont pour objectif de corriger les erreurs de jeunesses du langage.
(*) en réalité, seule la valeur de variable est constante, on ne peut pas utiliser
constpour faire réellement de l'immutabilité, par exemple.En pratique, la "fausse" immutabilité de
constfait que ce dernier est largement plus utilisé queletdans les programmes depuis ES6. A vue de pif, je dirais que j'utilise 15 fois plus deconstque delet. (et plus aucunvar)