最近在看词法作用域,遇到一个例子不是很理解var value = 1;function foo() { console.log(value);}function bar() { var value = 2; foo();}bar(); //结果是1function bar() { var value = 2; function foo() { console.log(value); } foo();}bar();//结果是2第一个例子,在执行foo函数时先是从foo函数内部查找局部变量value,因为foo函数中没有value变量所有又向上一层查找,此时查找的是全局变量value=1,不太明白的是foo函数的上一层为什么不是bar函数?这两个例子有什么区别吗?
添加回答
举报
0/150
提交
取消