再会。告诉我在哪里挖掘......有这样的代码:
let name = 'John';
function printName() {
console.log(name);
}
setTimeout(() => {
let name = 'Peter';
printName();
}, 1000);
我希望控制台能显示 Peter,但它输出了 John。为什么会这样呢?毕竟,在调用 printName 的本地范围内,声明了 name 变量。
再会。告诉我在哪里挖掘......有这样的代码:
let name = 'John';
function printName() {
console.log(name);
}
setTimeout(() => {
let name = 'Peter';
printName();
}, 1000);
我希望控制台能显示 Peter,但它输出了 John。为什么会这样呢?毕竟,在调用 printName 的本地范围内,声明了 name 变量。
函数内部
printName没有声明变量name。因此,该值是从上下文中获取的,在当前版本中该值为'John'。