var a = 0;
if (true) {
console.log(a)
a = 1;
function a() {}
a = 21
console.log(a)
}
console.log(a)
Run Code Online (Sandbox Code Playgroud)
在我看来,因为函数声明提升,a = 1
以及 a = 21
会改变局部函数变量,所以在块中会输出21,外面是0,但真正的结果是在输出1之外。
用chrome调试,结果是这样
当运行时function a() {}
,它会改变局部和全局变量。太奇怪了?谁能给我解释一下?
javascript ×1