Comme nous le savons tous, le langage JavaScript avant ES5 n'avait qu'une portée de fonction et une portée globale. En utilisant var pour déclarer des variables, les variables déclarées avec var ont toujours une promotion de variable, ce qui prête à confusion. Examinons d'abord la déclaration var d'ES5, puis comparons let et const.
var
Portée de la fonction de déclaration Var et portée globale.
Regardons le code :
function getName() { if (1 + 1 === 2) { var name = 'xixi'; } console.log(name); } getName();//xixi
En langage C ou Java, le nom ne doit être utilisé que dans le bloc if, mais il est également accessible en dehors du if , c'est une manifestation du fait que js n'a pas de portée au niveau du bloc. Cet inconvénient est très évident dans la boucle for :
for (var i = 0; i < 10; i ++) { // ... } console.log(i);// 10
L'intention initiale de var i est de déclarer une variable temporaire i, qui est utilisée pour parcourir des tableaux, etc. Elle ne doit pas être accessible en dehors de la boucle for boucle, mais maintenant Mais on peut y accéder pour vous dire si c'est gênant ou pas ? Les meilleurs programmeurs utiliseront des fonctions d'exécution immédiate pour simuler la portée au niveau du bloc. À l'origine, je ferais attention et j'essaierais de ne pas utiliser le même nom de variable.
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!