这道题的输出结果是什么?为什么?求助……

var value = 1;

function foo(){

    console.log(value);

}

function bar(){

    var value = 2;

    foo();

}

bar();


智慧大石
浏览 802回答 3
3回答

哔哔one

答案是1。函数的作用域在定义时确定,而不是在运行时确定。所以bar里面的value不会影响到foo的作用域。

临摹微笑

如楼上所说答案是1,建议去看下闭包相关的内容.在函数foo()跟bar()里面是有各自的函数作用域的.我举个栗子给你说明吧.$(document).ready(function(){function foo(){}});foo();// foo is not defined.这样是会报错的,因为作用域不一样了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript