JavaScriptのスコープ

4097 ワード

学習目標:Javascriptの二つの作用領域を話すことができます.
                  グローバル変数とローカル変数を区別できます.
                  スコープ内で変数の値を検索する方法を説明できます.
 
1.スコープ
    
        <span style="color: #008000;">//</span><span style="color: #008000;">1.javaScript   :      (  )                                     。</span>
        <span style="color: #008000;">//</span><span style="color: #008000;">2.js    (es6)  :           </span>
        <span style="color: #008000;">//</span><span style="color: #008000;">3.     :  script           js  </span>
        <span style="color: #0000ff;">var</span> num = 10<span style="color: #000000;">;
        </span><span style="color: #008000;">//</span><span style="color: #008000;">4.            (     )                    </span>
        <span style="color: #0000ff;">function</span><span style="color: #000000;"> fn (){
            </span><span style="color: #008000;">//</span><span style="color: #008000;">     </span>
            <span style="color: #0000ff;">var</span> num = 20<span style="color: #000000;">;
        }
    </span>
2.1変数のスコープの分類
作用領域に応じた変数は2つに分類されます.
グローバル変数
ローカル変数
    
        <span style="color: #008000;">//</span><span style="color: #008000;">      :                       </span>
        <span style="color: #008000;">//</span><span style="color: #008000;">1.    :          ,        </span>
        <span style="color: #008000;">//</span><span style="color: #008000;">   :                          </span>
        <span style="color: #0000ff;">var</span> num = 10; <span style="color: #008000;">//</span><span style="color: #008000;">num        </span>
<span style="color: #000000;">        console.log(num);
        </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> fn(){
            console.log();
            </span><span style="color: #0000ff;">var</span> num = 10<span style="color: #000000;">; 
        }
        </span><span style="color: #008000;">//</span><span style="color: #008000;">2.                                 </span>
        <span style="color: #008000;">//</span><span style="color: #008000;">                </span>
        
        3<span style="color: #000000;">.            
        </span><span style="color: #008000;">//</span><span style="color: #008000;">(1)                  ,       </span>
        <span style="color: #008000;">//</span><span style="color: #008000;">(2)                         </span>
    
3.作用ドメインチェーン(簡単)近原則
    
        <span style="color: #008000;">//</span><span style="color: #008000;">    :             ,                  ,             </span>
        <span style="color: #008000;">//</span><span style="color: #008000;">            </span>
        <span style="color: #0000ff;">var</span> num = 10<span style="color: #000000;">;
        </span><span style="color: #0000ff;">function</span> fn(){<span style="color: #008000;">//</span><span style="color: #008000;">    </span>
            <span style="color: #0000ff;">var</span> num = 20<span style="color: #000000;">;
            </span><span style="color: #0000ff;">function</span> fun(){<span style="color: #008000;">// </span><span style="color: #008000;">   </span>
<span style="color: #000000;">                console.log(num);            
            }
        }
    </span>