JavaScriptプリコンパイル

5678 ワード

記事の目次
  • プリコンパイル4ステップ
  • 例解析
  • 注意
  • プリコンパイル4ステップ
    関数のプリコンパイル:
  • AO活動対象(Active Object)を作成します.
  • 形参と変数宣言を探して、変数と形参名をAO属性名として、値はundefined
  • です.
  • 実パラメータ値は、形参(関数)
  • に割り当てられる.
  • 関数宣言を見つけました.値は関数
  • に与えられます.
    グローバル類似で作成されたオブジェクトはGOグローバルオブジェクト(Global Object)であり、windowオブジェクトです.
    実例分析
        function f(a){
            console.log(a);
    
            var a = 123;
    
            console.log(a);
            
            function a() {}
    
            console.log(a);
    
            console.log(b);
    
            var b = function () {};
    
            console.log(b);
        }
    
        f(1);
    
    プロセス分析
    1.   AO   
    2.      
    	a --> undefined
    	b --> undefined
    3.       
    	a --> 1
    	(b --> undefined)
    4.      ,     
    	a --> function a() 
    	(b --> undefined)    **       ,b      **
    
    出力結果
        
    	 function a()
    	 //    123
    	 123
    	 123
    	 undefined
    	 function b()
    
    注意
  • 四段階における関数宣言は、変数が上昇した後、付加価値関数がundefined
  • をカバーする.
  • 関数宣言と関数表現は異なり、関数式、すなわち変数宣言の割り当て値undefined
  • ifにおける関数宣言は、プリコンパイル
  • に参加しない.
    	console.log(a);
    
    	if(1){
    	  function a(){}
    	}
    
    	console.log(a);     function a()
    
    ifのステートメントを実行した後だけ、値が与えられます.