0
function foo(a)
{
var b = a*2;
function bar(c)
{
console.log(a,b,c);
var c= 3;
}
bar(4);
var c= 4;
var a= 2;
}
foo(1);
为什么c不是3?尽管var c = 3,但在bar()的词汇范围中定义,为什么即使在bar()调用下定义var c = 4,也会选择var c = 4? 请帮我理解如何挑选这些值并将其分配给变量。变量的查找范围
使用[this search](/ search?q =%5Bjs%5D + variable + hoisting)可以找到关于此主题的很多问题和答案,例如[this one](http://stackoverflow.com/questions)/33540709/javascript-variable-hoisting)和其他人的**群**,包括我刚标记的复制目标(在这种情况下,它是全局的,但答案是相同的)。 –