首页新闻找找看学习计划

js 函数问题求解答

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-06-01 09:00

var str ='test';
    function func1(){
        console.log(str);
    }
    function func2(){
        var str ='test2';
        func1();
    }
    func2();

为什么弹出来的是test

巴拉拉的主页 巴拉拉 | 初学一级 | 园豆:194
提问于:2016-05-12 11:03
< >
分享
所有回答(2)
1

拜托,你想问什么都不说吗?

Y2zz | 园豆:393 (菜鸟二级) | 2016-05-12 11:17

不好意思啊  刚刚修改了一下

支持(0) 反对(0) 巴拉拉 | 园豆:194 (初学一级) | 2016-05-12 11:18

@巴拉拉: 因为 外部的str 的值是 test

 

func2 的 str 作用域只是在 func2内部,把 var 去掉就是 test2了

第一个 str 是全局变量,func2 里的 str 是局部变量

支持(0) 反对(0) Y2zz | 园豆:393 (菜鸟二级) | 2016-05-12 11:19

@巴拉拉: 如果已解决你的问题,还请麻烦给结贴

支持(0) 反对(0) Y2zz | 园豆:393 (菜鸟二级) | 2016-05-12 11:41
0

肯定是弹出 test 呀,因为你的var str ='test2' 是局部的赋值,而且重新定义了

DNLi | 园豆:306 (菜鸟二级) | 2016-05-13 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册