函数声明和函数表达式的区别
//函数声明式
function greeting(){
console.log("hello world");
}
//函数表达式
var greeting = function(){
console.log("hello world");
}
-
函数声明式变量会声明提前 函数表达式变量不会声明提前
-
函数声明中的
函数名是必需的,而函数表达式中的函数名则是可选的。 -
函数表达式可以在定义的时候直接在表达式后面加()执行,而函数声明则不可以。
function fun(){ console.log('我是一个函数声明式') }(); //unexpected token var foo = function (){ console.log('我是一个函数表达式') }(); //我是一个函数表达式 -
自执行函数即使带有函数名,它里面的函数还是属于函数表达式。
(function fun(){ console.log('我是一个函数表达式') })() //我是一个函数表达式因为函数只是整个自执行函数的一部分。