Cet article présente principalement l'explication détaillée de js scope, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
1.Scope dans ES5
for(var i =0;i<10;i++){ } console.log(i)
(function(){ for(var i =0;i<10;i++){ } })() console.log(i)
a=10; console.log(a)
var a=undefined; a=10; console.log(a)
Alors faisons quelque chose de plus avancé, qui est la
promotion variable. (Concept dans ES5, une nouvelle utilisation dans ES6 n'entraînera pas de promotion variable), regardez le code :
a=10; (function(){ console.log(a) var a=1; })();
var a=undefined; a=10; (function(){ var a=undefined; console.log(a) a=1; })();
2. Scope dans ES6
En raison de nombreux problèmes dans ES5, dans ES6, la déclaration de var est remplacée par let, mais afin d'être compatible avec ES5 vous Vous pouvez toujours utiliser la variable précédente. Cependant, il est toujours recommandé d'utiliser let.let ajoute une nouvelle portée à js qui est la portée du bloc. Regardez le code :
for(let i=0;i<10;i++){ } console.log(a)
a=3
let a =10;
alert(a)
affichera a n'est pas défini, pourquoi ? L'ES6 de Ruan Yifeng indique que tant que la commande let existe dans la portée au niveau du bloc, les variables qu'elle déclare seront « liées » à cette zone et ne seront plus affectées par les influences externes. ES6 stipule clairement que s'il y a des commandes let et const dans le bloc
, les variables déclarées par ces commandes dans ce bloc formeront dès le début une portée fermée. Toute utilisation de ces variables avant déclaration entraînera une erreur. Bien sûr, lorsqu’il a expliqué pourquoi, il a mentionné la zone morte temporaire.
.Résumé (hors sujet)
Comme ES6 n'existe pas depuis longtemps, nous rencontrerons encore beaucoup d'écriture et d'utilisation d'ES5, il est donc important de comprendre JS es5 et es6, que ce soit en train de le faire. front-end ou back-end Tout le monde a plus ou moins de contact avec js. Maintenant que nous sommes entrés en contact avec lui, nous
devons en avoir une compréhension approfondie. Nous ne pouvons pas nous contenter d'écrire des fonctions. . De plus, le front-end n'est plus comme avant. Je le connais toujours très bien et je suis optimiste quant au développement de js.
Explication détaillée du prototype en JS
Comment convertir un pseudo-tableau en tableau via js
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!