js関数およびjs関数式

4620 ワード

  • ステートメントと式のフォーマット
  • 1音明式のフォーマット
  • 式のフォーマット
  • の違い
  • 1関数式は、直接に括弧を付けて実行できます.関数宣言は
  • ではありません.
  • 関数式を事前に解析できます.
  • 命名関数式と匿名関数式の違い
  • 一、宣言と表現の書式
    1.1音明式のフォーマット:
    関数宣言:function関数名(){}
    例:
    function aaa(){}  //     
    1.2式のフォーマット:
    関数式:function関数名(書き込み不可)(){}:それぞれの代表:命名関数式、匿名関数式
    例:
    var a = function aaa(){} //      
    var a = function(){} //      
    (function aaa(){}) //      
    ~function aaa(){}
    -function aaa(){}
    +function aaa(){}
    !function aaa(){}  
    二、違います
    2.1関数式は、直接に括弧で実行できますが、関数宣言はできません.
    つまり、関数式は直接()を加えることによって実行できます.
    例えば:
    function aaa(){alert(1)}(); //        
    ただし、関数式であれば
    var a = function aaa(){alert(1)}(); //    
    ~function aaa(){alert(2)}();  
    2.2関数式は事前に解析できます.
    以下の例を見てください.この2つの例では、実行結果の違いから、関数式は事前に解析されたものであることが分かります.判断によって異なる関数(関数名が同じ)を呼び出す必要がある場合は、関数式を使うと良いです.
    if(true){
        function aaa(){
            alert(1);
        }
    }else{
        function aaa(){
            alert(2);
        }
    }
    aaa(); //2 
    if(true){
        var a = function aaa(){
            alert(1);
        }
    }else{
        var a = function aaa(){
            alert(2);
        }
    }
    a(); //1 
    2.3命名関数式と匿名関数式の違い
    例を見ます
    var a = function aaa(){
        alert(1);
        alert(typeof aaa); //       
    }
    a();
    aaa(); //