それは要するに、その範囲を規定された実行前に、どのローカルスコープ(変数)は、それが適用されることができるが決定実行する前に静的スコープは、コードのセクションを指します。
ダイナミックスコープ-関数が決定する前に呼び出される関数のスコープ
JavaScriptは静的なスコープですレキシカルスコープを使用しています。
@静的スコープ:
VAR A = 10;
関数fn(){
VARのB = 1。
console.log(A + B)。
}
FN(); // 11
それが決定されたときには、変数が直接操作変数を持つ関数fnであれば、変数は、行動することができFN関数を作成する場合は
1を見つけることがない場合は、静的までの範囲です、
@動的範囲:
関数foo(){
にconsole.log(A);
}
関数bar(){
VARのA = 3。
FOO();
}
2があります。
バー(); // 2;
JavaScriptはレキシカルスコープ(つまり、静的スコープ)があるので、バーの呼び出し、FOOと呼ばれているバー、関数fooあなたは、変数見つける必要がグローバルスコープで解析すると、fooが。
、我々は、グローバルスコープの出力を見つけることができます結果として、むしろバースコープよりも2。あなたがfooバーを呼び出すときのjsダイナミックスコープを使用して、それが最初のバーでチェックする場合は、出力が3です。