La portée est toujours la chose la plus importante dans tout langage de programmation, car elle contrôle la visibilité et le cycle de vie des variables et des paramètres. Permettez-moi de vous présenter la portée et la portée au niveau du bloc en Javascript. Les amis qui en ont besoin peuvent s'y référer
1 Description de la portée au niveau du bloc<.>
Avant d'apprendre la portée variable de JavaScript, nous devons clarifier quelques points : a. La portée variable de JavaScript est basée sur sa chaîne de portée unique. b. JavaScript n'a pas de portée au niveau du bloc. c. Les variables déclarées dans la fonction sont définies tout au long de la fonction. La portée variable de javascript est différente du langage de type C couramment utilisé. Par exemple, le code en C# :static void Main(string[] args) { if(true) { int number=10; } Console.WriteLine(number); }
if(true) { int number=10; Console.WriteLine(number); }
2. Portée en javascript
1. Portée des variables limitée par la fonction En javascript, à l'intérieur de la fonction Les variables définies est accessible à l'intérieur de la fonction, mais n'est pas accessible en dehors de la fonction Code :<script type="text/javascript"> var num=function() { var number=10; }; try{ alert(number); }catch(e) { alert(e); } </script>
<script type="text/javascript"> var num=function(){ alert(number); var number=10; alert(number); }; try{ num(); }catch(e){ alert(e); } </script>
2. Le sous-domaine accède au domaine parent
Une fonction peut limiter la portée d'une variable, alors la fonction dans la fonction est un sous-domaine du scope. Le code du sous-domaine peut accéder aux variables du domaine parent. Le code est le suivant :<script type="text/javascript"> var func=function(){ var number=10; var sub_func=function(){ alert(num); }; sub_func(); }; func(); </script>
<script type="text/javascript"> var func=function(){ var number=10; var sub_func=function(){ var num=20; alert(num); }; sub_func(); }; func(); </script>
<script type="text/javascript"> (function (){ var num=10; (function (){ var num=20; (function(){ alert(num); })(); })(); })(); </script>
"Supprimez-le, alors la valeur imprimée sera 10. Supprimez également "var num=20
", et une erreur non définie se produira. var num=10
Ce qui suit est une introduction à la portée JS et à la portée au niveau du bloc
La portée est toujours la chose la plus importante dans tout langage de programmation Heavy. car il contrôle la visibilité et le cycle de vie des variables et des paramètres. En parlant de cela, comprenez d’abord deux concepts : la portée au niveau du bloc et la portée de la fonction.Qu'est-ce que la portée au niveau du bloc ?
Tout ensemble d'instructions entre accolades ({ et }) appartient à un bloc. Toutes les variables qui y sont définies sont invisibles en dehors du bloc de code. La portée de la fonction est facile à comprendre (*^__^*). Les paramètres et variables définis dans la fonction ne sont pas visibles en dehors de la fonction. La plupart des langages de type C ont une portée au niveau des blocs, mais pas JS. Veuillez consulter la démo ci-dessous ://C语言 #include <stdio.h> void main() { int i=2; i--; if(i) { int j=3; } printf("%d/n",j); }
functin test(){ for(var i=0;i<3;i++){ } alert(i); } test();
function test(){ (function (){ for(var i=0;i<4;i++){ } })(); alert(i); } test();
这时候再次运行,会弹出"i"未定义的错误,哈哈,实现了吧~~~这里,我们把for语句块放到了一个闭包之中,然后调用这个函数,当函数调用完毕,变量i自动销毁,因此,我们在块外便无法访问了。
JS的闭包特性is the most important feature((*^__^*) 大家懂的)。在JS中,为了防止命名冲突,我们应该尽量避免使用全局变量和全局函数。那么,该如何避免呢?不错,正如上文demo所示,我们可以把要定义的所有内容放入到一个
(function (){ //内容 })();
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
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!