var
Déclare une variable à portée de fonction. C’est l’ancienne façon, remplacée aujourd’hui par let et const.
Exemple
#function checkAccess(points) {
if (points >= 100) {
var status = 'premium'
}
return status
}
console.log(checkAccess(150))
console.log(checkAccess(20))Définition et utilisation
#var est la plus ancienne façon de déclarer des variables en JavaScript. Vous le trouverez dans d’anciens tutoriels, des bibliothèques et du code écrit avant 2015, donc cela vaut la peine de comprendre son fonctionnement même si vous ne l’utilisez jamais vous-même.
Une variable déclarée avec var a la portée de toute la fonction, pas d’un bloc. Déclarée à l’intérieur d’un if ou d’une boucle, elle reste visible aussi en dehors. De plus, la déclaration est « remontée » (hoisting) au sommet de la fonction : la variable existe déjà dès la première ligne et vaut undefined jusqu’à ce que le programme atteigne l’affectation.
On peut déclarer le même nom avec var plusieurs fois sans aucune erreur. Combiné à la portée de fonction, cela facilite l’écrasement accidentel d’une valeur, c’est pourquoi le nouveau code devrait utiliser let et const.
Syntaxe
#var name
var name = value
var name1 = value1, name2 = value2Plus d’exemples
#console.log(bonus)
var bonus = 50
console.log(bonus)for (var i = 0; i < 3; i++) {
setTimeout(() => console.log('var:', i), 0)
}
for (let j = 0; j < 3; j++) {
setTimeout(() => console.log('let:', j), 0)
}Toutes les fonctions de la première boucle voient la même variable i, qui vaut 3 une fois la boucle terminée. let crée une nouvelle variable à chaque tour.
Compatibilité des navigateurs
#Largement disponible
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#- N’utilisez pas
vardans du nouveau code.letetconstont une portée de bloc prévisible et signalent une erreur quand une variable est utilisée avant sa déclaration. - En retouchant du vieux code, remplacez
varparletavec prudence. Si la variable était utilisée hors du bloc où elle était déclarée, déplacez la déclaration plus haut. - Dans un script ordinaire (hors module),
varau premier niveau crée une propriété sur l’objetwindow.letetconstne le font pas.
Entrées associées
#- let vs const vs varconst et let ont une portée de bloc, var une portée de fonction, et const interdit la réaffectation. Écrivez const par défaut, let pour les valeurs qui changent.
- letDéclare une variable à portée de bloc, dont la valeur peut être modifiée plus tard.
- constDéclare une constante à portée de bloc. Une telle variable ne peut pas recevoir une nouvelle valeur.
- functionDéclare une fonction nommée : un bloc de code avec des paramètres, que vous pouvez appeler autant de fois que vous voulez et qui peut renvoyer un résultat.
- setTimeout()Exécute une fonction une seule fois, après le nombre de millisecondes indiqué.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.