码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-05-30 23:16:12      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

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>

 

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

标签:

原文地址:http://www.cnblogs.com/bravolove/p/5544014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!