1. 程式人生 > >函式宣告與函式表示式基礎介紹

函式宣告與函式表示式基礎介紹

函式宣告: function a(){ alert(1); }

函式表示式:

  1. 匿名:var a=function(){alert(1);};

  2. 命名:var a=function fn(){alert(1);};

函式宣告轉化成函式表示式:加()、~等;
ps: 表示式

  • ( function a(){ alert(1);} )
  • ~function a(){alert(1);}

二者區別:

函式聲明後面不可以加();
函式表示式可在後面加();然後裡面的語句就會執行。

  1. 函式宣告:
    a();//1
    function a(){ alert(1); }

  2. 函式表示式:
    a();//報錯
    var a=function fn(){alert(1);}

2.

if(true){
function fn(){
alert(1);
};
}else{
function fn(){
alert(2);
};
};
fn1();//函式宣告要提前預解析,但每個瀏覽器的解析機制不一樣,所以結果是不一樣的,IE解析的結果是1,火狐解析的結果是2.

if(true){
var a= function fn(){
alert(1);
alert(typeof fn); } //在內部可以訪問到


}else{
var a = function fn(){
alert(2);
};
};

a();//每個瀏覽器的結果一樣。

fn();//在外部訪問,IE能彈出結果,ff解析報錯,所以建議這種情況不要使用函式名。

注意:把函式當成值得情況下,都可以使用匿名函式。(閉包)。