我一直在浏览 Javascript 函数范围并遇到了这个问题:
var scope = "global";
function f(){
console.log(scope);
var scope = "local";
console.log(scope);
}
f();
现在我明白第一个日志的输出是“未定义的”,因为 js 如何在函数顶部提升变量。但是当我从 "var scope = "local";" 中删除 var 第一个日志输出“全局”,这让我摸不着头脑。有人可以解释为什么会这样吗?我的意思是js不是顺序运行代码吗?因此,删除 VAR 对第一个日志有何影响?