zoukankan      html  css  js  c++  java
  • JavaScript中的作用域

    作用域

      一个变量如果定义在函数里,那么在函数外面是不可以访问的。
        function  f(){ var b = 1; }
        //不可访问
        document.write(b);   
     
      但是如果你一个变量定义在一个代码块中(一个if或者for 循环里)在代码块外面是可以访问的。
        for (var i = 0; i < 3; i++) {}
         //可访问
        document.write(i);  
      
      JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里       

        function fun01() {            

          var a = 2;            

          //JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里            

          document.write(fun02());        

        }        

        function fun02() {            

           //a没有定义            

          return a;        

        }

             fun01();

        

      不使用var关键字定义的变量, 相当于是全局变量

        //var a = 33;        

        //不使用var关键字定义的变量, 相当于是全局变量       

        function fun01() {    

          //没有使用var关键字定义变量a       

          a = 2;                  

          document.write(fun02());       

        }       

        function fun02() {               

          return a;       

        }

             fun01();

    作用域链

      如果你在f()里面再定义一个函数n(),n()将可以访问在自己作用域内的变量在加上其父作用域的变量,这被称为“作用域链“,并且这个链条可以想多长就可以有多长

        var a =1;

        function f(){

          var b = 1;
          function n(){
            var c = 3;
          }
        }
  • 相关阅读:
    Codevs_1403_新三国争霸_(Kruskal+动态规划)
    BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)
    BZOJ_1180_[CROATIAN2009]_OTOCI_(LCT)
    BZOJ_1611_[Usaco2008_Feb]_Meteor_Shower流星雨_(bfs)
    hdu5338 (二进制,双指针)
    并查集专辑 (poj1182食物链,hdu3038, poj1733, poj1984, zoj3261)
    生成树专题
    生成树相关问题
    uvaLive5713 次小生成树
    如何将无向图变为点/边双连通,如何将有向图变为强连通图
  • 原文地址:https://www.cnblogs.com/xinlingblog/p/2416397.html
Copyright © 2011-2022 走看看