码迷,mamicode.com
首页 > 编程语言 > 详细

javascript 关于局部变量和全局变量

时间:2014-10-04 12:35:42      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:javascript   局部变量   全局变量   function   对象   

js中函数执行过程不只是单纯的局部变量覆盖全局变量,和函数里面的声明情况有关。比如:

<script>  
    var a =1;  
    function test(){  
        alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量,  
                     //所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前,  
                     //函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,还没赋值,所以输出undefined。  
        a=4         
        alert(a);  //a为4,没悬念了吧? 这里的a还是局部变量哦!  
        var a;     //局部变量a在这行声明  
        alert(a);  //a还是为4,这是因为之前已把4赋给a了  
    }  
    test();  
    alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值  
</script>  

javascript 关于局部变量和全局变量

标签:javascript   局部变量   全局变量   function   对象   

原文地址:http://blog.csdn.net/primary_wind/article/details/39777849

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