Maison >interface Web >js tutoriel >Que sont var, let, const en JavaScript ? Utilisation de var, let, const (code)
Ce chapitre vous présentera ce que sont var, let et const en JavaScript ? Utilisation de var, let, const (code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
1. var
est une variable globale déclarée dans la fenêtre globale et est un attribut de la fenêtre objet globale.
var sum = 0 console.log(window.sum) // 0 console.log(sum); // 0
Les variables déclarées dans la fonction sont des variables locales
function foo(){ function bar(a){ i = 3; console.log( a + i ); // 3 之后是无限循环11 } var i = 0 for( i ; i <= 10; i++){ bar( i * 2 ) } } foo()
Ce code peut s'écrire comme ceci
function foo(){ function bar(a){ i = 3; console.log( a + i ); } var i i = 0 for( i ; i <= 10; i++){ bar( i * 2 ) } } foo()
La promotion de la fonction précède la promotion des variables, Après en entrant dans la boucle for, définissez le paramètre de la fonction bar sur 0, de sorte que la première sortie soit imprimée comme 3. L'accent est mis sur cet endroit i = 3. Il recherchera la déclaration de i dans la portée actuelle. Sinon, il suivra la chaîne de portée. Recherchez vers le haut et trouvez-le dans foo, donc i dans foo devient 3. Après avoir exécuté i++, nous obtenons i= 4. Lorsque nous exécutons bar, nous obtenons le 11 suivant. Cela continue de boucler
2. Let et const
ES6 sont deux nouvelles façons de déclarer des variables. La déclaration répétée de la même variable dans la même portée n'est pas autorisée. Il n'y a pas de promotion de variable
Comme il n'y a pas de promotion de variable, cette variable ne peut pas être utilisée avant que la variable ne soit déclarée avec var. sera soumis à une promotion variable. , mais la valeur n'est pas définie
Dans ES5, seules les fonctions ont une portée au niveau du bloc, mais dans ES6, il n'y a pas seulement une portée de fonction. C'est grâce à let et const
var b = 1; { let b = 2; } console.log(b); // 1Les accolades sont équivalentes à une portée au niveau du bloc
var a = [] for(let i=0; i<10;i++){ a[i] = function(){ console.log(i); }; console.log(i) //[function,function..] 总共10个 } console.log(a) a[8]() // 8Après avoir changé let ici en var, vous constaterez que toutes les sorties deviendront 10. Le i déclaré par var est en fait une variable globale, qui est au même niveau que le tableau a. Chaque fois que la boucle for modifie la valeur de i, elle est copiée en fonction de la valeur d'origine. Lorsque la boucle se termine, i = 10, donc quelle que soit la manière dont l'appel est effectué, la sortie est 10Le i. déclaré par let n'est que dans le courant Ce bloc est valide. Il y a un bloc pour chaque cycle, donc une nouvelle variable est créée à chaque fois qu'elle boucle i Il y a une différence entre cont et let, c'est-à-dire const est utilisé pour déclarer des constantes. Une fois déclarée, sa valeur ne peut plus être modifiée. Mais si const déclare une valeur de type référence
const a = {} a.name = 'circle' console.log(a); // Object {name: "circle"}const stocke la valeur d'adresse de cet objet, il ne peut donc garantir que la valeur d'adresse reste inchangée, mais pas les attributs de cet objet. être changé
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!