JS函数声明与函数表达式区别
function name(){} 与 var name = function name(){}在执行代码时的区别
函数声明
alert(sum(5,10)); //15
function sum(n,m){
return n + m;
}
执行代码前解析器通过function declaration hoisting的过程,读取并将函数声明添加到执行环境中。
函数表达式
alert(sum(5,10)); //error
var sum = function sum(n,m){
return n + m;
}
执行代码错误,var sum使得function sum在初始化语句中,而不是单纯的函数声明,导致执行语句前无法读取到function sum的函数声明。