我練了一些場景,並找到一個案例:變吊裝 - 「變種」,在功能全局變量名
根據封閉條函數應該有機會獲得var x
所以我希望提醒1和條件得到虛假由於if(!1)
但它提醒undefined
和條件得到真實和第二警報是價值10
var x = 1;
function bar() {
alert(x);
if (!x) {
var x = 10;
}
alert(x);
}
bar();
所以我很困惑,爲什麼它是促使不確定?
根據特定範圍內的提升,您可以在任何地方定義一個變量,並始終將其視爲定義在頂部。
如果是由於起重效果,它仍然不得不提醒10而不是未定義。
感謝例子講清楚:) –