2017-12-02 215 views
0

示例1:結果是我所期望的。帶「let」關鍵字的塊範圍

如果我們聲明let塊內部,它不應該從外部訪問 範圍。

{ 
    let privateScope = 1; 
    function thing() { 
    privateScope = 2 
    } 
} 
console.log(typeof privateScope); //undefined 

實施例2:變量可以外部範圍來訪問!

{ 
    let privateScope = 1; 
} 
console.log(typeof privateScope); // number 

爲什麼可以privateScope可以在實施例2從塊外部訪問?

+0

對我來說代碼#2返回「undefined」。什麼是執行環境? – skyboyer

+3

在這裏沒有這樣做 - 無論如何,'typeof'肯定不會返回'1',所以也許在你的代碼中有其他事情正在發生。 – Eevee

+0

對於我來說,它也會返回undefined。你是console.logging別的可能是 – itsundefined

回答

3

{ 
 
    let privateScope = 1; 
 
} 
 
console.log(typeof privateScope);

這是你的例子在SO與ES2015片斷檢查。正如您在運行時看到的那樣,privateScope未定義。我只能假設StackBlitz在編譯代碼時做了一些奇怪的事情,或者它是一個配置錯誤。