1.
var a = function(){}
2.
function a(){}
同样是function,但是其实是两码事,
第一种,function相当于一个表达式符号。
第二种,是一个函数声明。
所以有了下边的区别:
1.var a = function(){}();
2.function a(){}();
第一种就能执行,第二种无法执行。
原因就是表达式是可以被执行的,而函数语句块是不能直接被执行的。
(function a(){})()
这样就能执行了,这里是通过(),把里边的函数强制转换成了表达式。