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
}