我發現在網絡這個簡短的JavaScript代碼片段:代碼在javascript中的return語句之後執行?
var foo = 1;
function bar() {
foo = 10;
return;
function foo() {}
}
bar();
console.log(foo);
我希望return語句後的內容功能巴()被忽略,和變量FOO末等於10 。然而,爲了我驚訝的是,控制檯輸出非常不同的東西:
1
現在,當我刪除行return語句後
var foo = 1;
function bar() {
foo = 10;
return;
}
bar();
console.log(foo);
控制檯打印出來,符合市場預期:
10
任何人都可以解釋我是什麼導致foo在前一版本的代碼中返回1?
我接受這是正確的答案,因爲它是最全面的。謝謝! –
@MarcinWasilewski我會說這是最長的。 –