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)和其他人的**羣**,包括我剛標記的複製目標(在這種情況下,它是全局的,但答案是相同的)。 –