新手上路之JavaScript 全局变量与局部变量同名问题 详解

11 篇文章 0 订阅
7 篇文章 0 订阅
        //话都在代码里,小白一枚,有什么错误,请各位大神直接提出来,在此谢谢拉

         var bx = 43; //全局变量

         function s(){
            //局部变量
            var bx = 12;
            console.log("1---s()函数中----->" + bx); //12
            bx = 33;
            console.log("2----s()函数中---->" + bx); //33
        }

            s();
            //为了方便起见,就把它称作3
            console.log("3----s()函数外---->" + bx);//43 
            结果如下:
           1---s()函数中----->12
           2----s()函数中---->33
           3----s()函数外---->43               

            //函数外的3的结果是43
            //但还是不太确定函数内的bx = 3;到底是不是全局变量
            //为了测试修改的代码1如下:

            //var bx = 43; //去掉全局变量

         function s(){
            //局部变量
            var bx = 12;
            console.log("1---s()函数中----->" + bx); //12

            //函数外3,并没有输出结果可看出,bx是局部变量
            //采取的就近原则,覆盖上面bx=12的值
            bx = 33;
            console.log("2----s()函数中---->" + bx); //33
        }

            s();

            console.log("3----s()函数外---->" + bx);//无

           结果如下:
           1---s()函数中----->12
           2----s()函数中---->33

           测试修改的代码2如下:
            var bx = 43; 

            function s(){
            //局部变量
            //var bx = 12;
            //根据就近原则,就是上面的全局变量的值:43
            console.log("1---s()函数中----->" + bx); //43

            //此时的bx是全局变量
            //覆盖上面bx=43的值
            bx = 33;
            console.log("2----s()函数中---->" + bx); //33
        }

            s();

            //称作3
            console.log("3----s()函数外---->" + bx);//33

            结果如下:
                    1---s()函数中----->43
                    2----s()函数中---->33
                    3----s()函数外---->33
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值