区别:解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。
例:
函数声明:
alert(sum(10,10);
function sum(a,b){
return a+b;
}
以上代码正常运行。
函数表达式:
alert(sum(10,10));
var sum = function(a,b){
return a+b;
}
以上代码运行期间产生错误。
————————————————
//函数声明的自执行必用()将函数声明括起来后自执行 (function a() { console.log("a"); })() //函数表达式可以直接自执行,不需要加() var b=function () { console.log("b") }()