区别java变量思维,你真的懂javascript中全局变量和局部变量的区别以及变量加var和不加var的区别?

导入:如果下图代码你不知道结果.那你有必要看我推荐的链接了!!!

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

附好文链接
全局变量和局部变量的区别
以及


变量加var和不加var的区别

1.使用var声明变量,在方法内部是局部变量,在方法外部是全局变量
2.没有使用var声明的变量,在方法内部或外部都是全局变量,
但如果是在方法内部声明,在方法外部使用之前需要先!!!调用方法!!!,告知系统声明了全局变量后方可在方法外部使用。
3.在2的基础上,带var声明和不带var声明的变量在一起;则带var声明的变量优先
如下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值