我偶然发现了一个问题,找不到更详细的答案。
let a = 1;
function b() {
a = 10;
return;
function a() {
}
}
b();
console.log(a);
为什么控制台输出 1. 毕竟函数内部有一个外部变量的值发生了变化。
我偶然发现了一个问题,找不到更详细的答案。
let a = 1;
function b() {
a = 10;
return;
function a() {
}
}
b();
console.log(a);
为什么控制台输出 1. 毕竟函数内部有一个外部变量的值发生了变化。
在这种情况下,在 function内部
b描述了一个函数a,由于函数声明提升,该函数上升了。a因此,对函数内部标识符的任何调用b都将是对内部函数的调用,而不是对全局变量的调用。您可以通过简单地打印值来检查这一点
a