js表示式方式和函式語句方式宣告函式的區別

antzone發表於2017-03-21

在js中,宣告函式的方式有多種,最為常用的是表示式方式和函式語句的方式,它們兩者之間是有所區別的,如果不注意或者不瞭解,可能認為它們是完全相同的,這就可能造成一些問題,下面就介紹一下它們兩者的區別,希望能夠給尚不瞭解此方面知識的朋友帶來一定的幫助。

一.函式語句方式:

所謂函式語句方式就是function關鍵字+函式名稱(引數){}這種形式進行宣告,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
func();
function func(){
  console.log("螞蟻部落");
}

js程式碼是順序執行的,儘管在宣告函式之前呼叫函式,函式還是能夠實現正常執行,這是因為函式語句宣告方式能夠前置,在其他語句執行前就完成宣告,所以才不會出現問題。

二.表示式方式:

[JavaScript] 純文字檢視 複製程式碼
func();
var func=function(){
  console.log("螞蟻部落");
}

以上程式碼就出現錯誤,這是因為在預編譯階段只會宣告變數func,但是不會賦值,所以這個時候變數func的值為undefined,於是當呼叫func()函式的時候,這個時候func變數還沒有被賦值為函式物件的引用。

相關文章