请看如下两个函数:函数
function a(){ alert("a") }//函数1 var b= function(){ alert("b") }//函数2
它们俩有何不一样呢?翻开书,做者会告诉咱们,前者为函数声明,后者为函数表达式。函数声明做为一种声明,固然会在预编译阶级有所动做(声明提早),而函数表达式则不会。另外一个区别是,函数声明是语句,语句是没有返回值,不能直接加一对括号让它们执行,例如:spa
function a (){ alert("a") }();//报错 var b = function(){ alert("b") }();//正确
纠正:给 function 外套一对括号就不报错了,括号是表达式,是表达式就有返回值,因此能够在后面加一对括号让它们执行,例如:code
(function a (){ alert("a") })();//没有问题
另外,咱们知道,函数名的做用就是用来引用的,如今没用了,咱们是否是能够把它去掉呢?io
(function (){ alert(arguments.callee) })();//弹出自身
注意:JS中的函数不主动调用时不会加载的时候运行的,下面两种方法均可以:编译
(function abc(){ alert(22); })();//让函数自动运行 function abc(){ alert(22); } abc();//让函数自动运行