2016-11-18 4 views
5

DevToolsコンソールの機能のスコープを調べると、私は「スクリプト」スコープに気づいた。少しの研究の後、それはletconst変数のために作成されたようです。 constまたはlet変数なしのスクリプト内の関数のスクリプトスコープの目的は何ですか?

スコープ:

let変数とスクリプト内の関数の

the global scope

スコープ:

a global scope and a script scope

しかし、次の1をコンソールに表示します - スクリプトスコープの変数には他のスクリプトからもアクセスできますts:

トップレベルの変数がモジュールの外部からアクセスできないES6モジュールについて聞いたことがあります。スコープが使われているのですか、それとも別の目的がありますか?

答えて

6

varを変数として宣言すると、その変数は自動的にグローバル変数になります(ブラウザでは、windowのプロパティとしてアクセスできます)。 letconstを使って宣言された変数は、グローバル変数にはなりません。別のスクリプトタグでアクセスできますが、プロパティとしてwindowにアクセスすることはできません。

<script> 
 
    var test1 = 42; 
 
    let test2 = 43; 
 
</script> 
 
<script> 
 
    console.log(test1); // 42 
 
    console.log(window.test1); // 42 
 
    console.log(test2); // 43 
 
    console.log(window.test2); // undefined 
 
</script>

この例を参照してください。

関連する問題