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