2017-12-02 2 views
0

例1:結果は私が期待したものです。"let"キーワードを含むブロックスコープ

ブロック内にletと宣言した場合は、 スコープからアクセスしないでください。

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

例2:変数が範囲外でアクセスすることができます! privateScope例2ブロック外部からアクセスすることができるなぜ

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

?ここで

+0

私のコード#2は "未定義"を返します。実行環境とは何ですか? – skyboyer

+3

はここでそれをしません - とにかく、 'typeof'は確かに' 1'を返すことはできませんので、おそらくあなたのコードで何か他のことが起こっています – Eevee

+0

私にとっては、おそらくconsole.logging何か他のものがあります – itsundefined

答えて

3

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

はSO ES2015をチェックしてスニペットであなたの例です。実行時にわかるように、privateScopeは未定義です。私は、StackBlitzがコードを翻訳するときに何か奇妙なことをしているとしか思えない、あるいは設定エラーです。

関連する問題