知識の前端:JavaScriptの基礎 - スコープとクロージャ - レキシカルスコープと動的範囲

レキシカルスコープと動的スコープ

1、範囲:

スコープは、プログラムコードで定義された変数の領域を指します

JavaScriptは静的なスコープですレキシカルスコープを使用しています

2、字句スコープとダイナミックスコーピング

JavaScriptはレキシカルスコープを使用しているので、関数のスコープは関数が決定に定義されている場合。

対応する語彙のスコープと動的スコープ、関数を決定する前に呼び出される関数の範囲です。ダイナミックスコープと機能範囲がどのように、どこ文が宣言さに関係していない、彼らだけから呼び出すところを気に。換言すれば、スコープチェーンは、コールスタックではなく、コードネストスコープに基づいています。

 

VaRの値= 1 関数FOO(){ 
    にconsole.log(値)。
} 
関数バー(){
     VARの値= 2 
    FOO(); 
} 
バー()。
// 结果是?

 

JavaScriptはその静的スコープ、実装プロセスの分析を想定しています。

実行のfoo()関数、FOO関数値内の最初の外観がローカル変数であり、そうでない場合ならば、筆記層上の位置コードを見つけるためには、即ちので印刷結果こと、値1に等しいです。

JavaScriptが想定される動的スコープという、実装プロセスの分析:

実行のfoo()関数は、ローカル変数の値がある場合、関数foo内から見つけることはまだある、そうでない場合は、関数呼び出しの範囲からバーの内側()関数は、値変数を見つけるために、その結​​果が2を印刷しますです。

既に述べたように、JavaScriptはレキシカルスコープを使用し、これは結果の一例です

参考記事:HTTPS://www.cnblogs.com/xiaohuochai/p/5700095.html

 

おすすめ

転載: www.cnblogs.com/memphis-f/p/12059907.html