1、函数声明(优先使用,声明的时候会被提升)
function fun(){
console.log('123');
}
fun()//直接调用函数名
2、函数表达式,也叫匿名函数;
var fun = function(){
console.log('123');
}
fun()//调用匿名函数,使用变量名加()
过程:这种定义方式是把函数赋值给了一个变量,函数并没有真正的名字;既然是变量,声明的时候,函数本身不会被提升,提升的是变量名;
3、自执行函数(自己执行自己,并且在声明的同时就调用自己,只能调用一次)
(function()(
console.log('123')
})();
//原理:由函数表达式演变的
过程:在2中,把fun(),中的fun直接以函数体替换,就成了function(){}();再加上()括起来函数体,以免js误判是函数声明