函數聲明和函數表達式有什么區別

啥是函數聲明?

函數聲明:使用function關鍵字聲明一個函數,再指定一個函數名,叫函數聲明。
function functionName(arg1, arg2, …){

}
函數表達式:使用function關鍵字聲明一個函數,但未給函數命名,最后將匿名函數賦予一個變量,叫函數表達式,這是最常見的函數表達式語法形式。
var variable=function(arg1, arg2, …){ }

總結一下,有名字的就是函數聲明,沒名字的就是函數表達式。。表達式嗎,是要有等號的。

那么有啥區別呢?

既然功能一樣,那么就沒啥區別嗎?
有區別,如果你是先調用后定義函數,那么函數聲明這種方式是可以的,而函數表達式這種方式不可以。
函數聲明

alert(add(3,4));//7
function add(x,y){
    return x+y;
}

函數表達式

alert(x(3,4));
x=function(x,y){
    return x+y
};

函數表達式和匿名函數啥關系?

函數表達式右側的東西就叫做匿名函數。
沒名字嘛
加上左側就叫表達式了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容