1. 程式人生 > >JavaScript定義函式的兩種方式

JavaScript定義函式的兩種方式

   定義函式的方式有兩種:一種是函式宣告,另一種就是函式表示式;

      1.1 函式宣告

function functionName(arg){
     //函式體
}

      關於函式宣告,它有一個重要特徵就是函式宣告提升,意思就是在執行程式碼之前會先讀取函式宣告。這就意味著可以把函式放在呼叫它的語句後面。如下所示:

helloworld(); //在程式碼執行之前會先讀取函式宣告
function helloworld(){
   console.log("hello world");
}

     1.2 函式表示式

var functionName=function(arg){
      //函式體
}

      這種形式看起來好像是常規的變數賦值語句,即建立一個函式並將它賦值給變數functionName。這種情況下建立的函式叫做匿名函式。因為function關鍵字後面沒有識別符號。

函式表示式與其他表示式一樣,在使用之前必須先賦值;如下面程式碼就會導致錯誤;

helloworld(); //錯誤,還未賦值,函式不存在

var helloworld=function(){
    console.log("hello world");
}

       有了函式表示式,我們就可以動態給函式表示式賦值了;如下面程式碼:

複製程式碼

var helloworld; //宣告
if(condition){ //條件
   helloworld=function(){ //賦值
       console.log("hello world"); 
   }
}
else{
    helloworld=function(){ //賦值
       console.log("你好,世界");
    }
}

複製程式碼