• 2016-05-30 函数与变量 作用域


    1. 如何访问函数内的局部变量

     <script>
           //获取函数内部变量的两种方法
           function fn1(){
               var a='100000美金';
           }
           alert(a);//报错 a isNot undefine;
    
           //解决方法1: 通过把局部变量赋值给全局变量
           var str='';
           function fn1(){
               var a='100000美金';
               str=a;
           }
           fn1();//必须先调用函数,否则里面赋值不会自动执行
           alert(str);//'100000美金'
    
           //解决方式2 通过局部函数调用并传参给全局函数
           function fn2(){
               var a ='妹子爱吃梅子,我爱吃妹汁';
               fn3(a);
           }
           function fn3(b){
               alert(b);
           }
           fn2();//妹子爱吃梅子,我爱吃妹汁
       </script>
    

      

    2.乱七八糟的作用域

    <script>
    alert(a);//function a(){alert(4)}
    var a=1;
    alert(a);//1
    function a(){//不执行,未被调用
    alert(2);
    }
    var a=3;
    alert(a);//3
    function a(){//不执行,未被调用
    alert(4);
    }
    alert(a);//3
    //a();//等于3(); is not a function;
    </script>

    <script>
    alert("a:"+a);//3,script是个全局的域,上面a初始化了,后面的可以用,反之不可以

    var b=10;
    function fn1(){//预解析 b为undefine
    alert("b1"+b);//此处的b 与var b=1;中的b没有任何关系
    var b=2;
    }
    fn1();//undefine;
    alert("b2:"+b);//10

    var c=1;
    function fn2(){
    alert("c1:"+c);
    c=2;
    }
    fn2();//1
    alert("c2:"+c);//2

    var d=1;
    function fn3(d){//预解析 b为undefine
    alert("d1:"+d);
    d=2;
    }
    fn3();//undefine
    alert("d2:"+d);//1

    var e=1;
    function fn4(e){//预解析 b为undefine
    alert("e1:"+e);
    e=2;
    }
    fn4(e);//1
    alert("e2:"+e);//1
    </script>
  • 相关阅读:
    base64编码是什么1
    base64编码是什么
    算法
    spring 的 ApplicationContext.getBean(type) 无法获取bean,报错
    多个tomcat shutdown.sh 导致无法正常关闭的问题
    springboot server.address 配置问题
    jsp页面错误的全局处理
    ASP.NET MVC三层关系
    ASP.NET指定页面转PDF、JPG(插件)
    Java理论知识及面试题
  • 原文地址:https://www.cnblogs.com/bravolove/p/5544014.html
Copyright © 2020-2023  润新知