Maison  >  Article  >  interface Web  >  Explication détaillée de la portée au niveau du bloc ES6

Explication détaillée de la portée au niveau du bloc ES6

小云云
小云云original
2018-01-26 16:45:571566parcourir

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!

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