频道栏目
首页 > 程序开发 > web前端 > JavaScript > 正文
新手上路之JavaScript全局变量与局部变量同名问题详解
2017-07-22 11:18:31         来源:edtwar的博客  
收藏   我要投稿

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

        //话都在代码里,小白一枚,有什么错误,请各位大神直接提出来,在此谢谢拉

         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
点击复制链接 与好友分享!回本站首页
上一篇:js判断是否是当前点击对象
下一篇:javaScript图片滚动轮播,图片下小圆点+两边箭头点击自动关联!
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站