スコープとスコープチェーンは何ですか?Javascript基礎学習ノート
1061 ワード
JSにおけるグローバルスコープと関数スコープを簡単に紹介し、スコープの実行メカニズムを理解することに重点を置いている.
スコープグローバルスコープ(Global scope)グローバルスコープ内で定義された変数と関数はどこでも利用できます. 関数スコープ関数スコープ内で定義された変数と関数は、関数内でのみ利用可能です. スコープチェーン実行コンテキスト(Execution Contect)JSでは、すべてのコードがコンテキスト/実行環境で実行され、関数の呼び出しごとに新しい実行環境が作成されます.実行環境には、自身の変数環境、 スコープの動作方式 によって参照される変数(定義されていない)は、まず自身が実行する環境で検索される. が見つからなかったら、外部実行環境を検索します. がまだ見つかっていない場合は、グローバルスコープまで上の階の実行環境を検索する. グローバルスコープ内にまだ見つかっていない場合、この変数は である.
例
スコープ
this
オブジェクト、およびそれらの外部層に対する環境の参照が含まれている.グローバルスコープには外層実行環境が存在しない.undefined
例
var x = 2;
function A() {
var x = 5;
B();
}
function B() {
console.log(x);
}
A(); // The result is 2, not 5.
// Even though 'B' is called within 'A',
// 'B' is defined within **Global**,
// therefore, the **Outer Reference** of 'B' is **Global** instead of 'A'