function foo(a) {
function a() {
return 8;
}
return a();
y = 9;
}
console.log(foo() + " " + y);
這給出了變量y
的未定義錯誤。JavaScript中變量的範圍
function foo(a) {
y = 9;
function a() {
return 8;
}
return a();
}
console.log(foo() + " " + y);
打印在瀏覽器控制檯8 9
。
如果我們聲明沒有var
關鍵字變量比它變成全局變量。
爲什麼第一個功能不遵循這個想法?
請在Stack Overflow問一個問題之前做一些研究。通過_literally_複製粘貼這個問題的標題在谷歌,我發現鏈接的副本。 – Cerbrus
@Cerbrus它無關變量的作用域和肯定不是一個重複。 – MrCode
使用嚴格模式和第二片段會拋出異常也是如此。不要使用'var',只需在適當的範圍內使用'var'! – Bergi