啥是函數聲明?
函數聲明:使用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
};
函數表達式和匿名函數啥關系?
函數表達式右側的東西就叫做匿名函數。
沒名字嘛
加上左側就叫表達式了。