程宇寒 2019-08-20 18:36 采纳率: 73.3%
浏览 426
已采纳

javascript中局部变量和全局变量同名的疑惑,有具体代码,请小伙伴赐教!

javascript中局部变量和全局变量同名的疑惑,有具体代码,请小伙伴赐教!
直接po代码和截图
为什么打印出来的是江西省于都县
谁能解释一下?

<script type="text/javascript">
var address = "江西省于都县";
    function f6(){
        console.log(address);
    }

    function f7(){
        var address = "江西省赣州市于都县";
        f6();
    }

    f7(); //结果为江西省于都县
    </script>

在f7函数中调用了f6函数,那应该相当于如下代码啊

var address = "江西省于都县";
    function f7(){
        var address = "江西省赣州市于都县";
        //f6(); //f6函数应该相当于下面这一行代码啊
        console.log(address);
    }

图片说明
图片说明

  • 写回答

4条回答 默认 最新

  • 爱前端不爱恋爱 2019-08-28 17:21
    关注

    你的f6 和f7 都是局部的 如果你没有定义全局变量adress 然后直接 调用f7 ;f6会报错 adress 未定义;两个局部的变量是要通过参数传递 并不是在f7定义了一个adress
    f6 就能拿到的 ,拿不到就要看 自身的块级链有没有 adress 没有就去方法的arguments参数里 找 在没有就要看全局

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 3月21日