VaRのJSと範囲と課題を聞かせて

ES6を学ぶ今日は、私がvarとしましょうとの違いに気づきました。

] [=があります。

ため(VAR I = 0、I <10; I ++){

   [I] = funciton(){

       console.log(I);

   }。

 }

[6](); // 10

以下のために(; I <a.length; VAR iが0 = I ++){

  [I](); //出力0-9

}


VaRのA = [];
ための式(I = 0せ; I <10; I ++){
  [I] =関数(){
     にconsole.log(I)。
  }。
}
[6](); // 6

varがグローバル変数を設定します。私はメモリアドレスを指す配列に格納され、そのサイクルには移動しない最後の10で、私を変えてきたこと。 

ローカル変数が設定されて聞かせ、変数宣言は、ブロックレベルのアクション内でのみ有効です。配列は、私の現在のラウンドに書かれているので、変数iが、サイクルの現在のラウンドでのみ有効で、各ラウンドの私は新しい変数です。あなたは、コンクリートを見ることができます

http://es6.ruanyifeng.com/#docs/let

私は、私は理解JSスコープの下で、インターネットをチェックしてスコープは、よく学ぶために自分自身をしています。

まず、内部関数の範囲があります

= 10があります。

関数AAA(){

  console.log(A)。
  VAR A = 20;

}

AAA(); //未定義

ここで、内部と外部のスコープ範囲の関数である、未定義近接の原理に従った2つの競合する最初の選択自体があります。これは、何かが間違っている場合、私を修正してください、私自身の理解です。

= 10があります。

関数AAA(){

  cosonle.log()。

  = 20; //グローバル変数がVARではありません

}

AAA(); // 10


= 10があります。

関数AAA(){

 VAR A = 20; //関数スコープ内

 cosole.log()。// 20

}
リリース9件のオリジナルの記事 ウォンの賞賛0 ビュー3317

おすすめ

転載: blog.csdn.net/qq_27568213/article/details/80620010