函数声明:function sum(){}
函数表达式:var sum = function(){}
函数声明,解析器可以通过一个名为‘函数声明提升’的过程。读取并将函数声明添加到执行环境中,对代码求值时,javascript引擎在第一遍声明函数并将它们放在源代码树的顶部,所以即使声明函数的代码调用它的代码的后面,javascript引擎也能把函数声明提升到顶部
关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明,这就意味着可以把函数声明放在调用它的语句后面。
test1:
alert(sum);//不会报错,因为函数声明已经提升到顶部
function sum(){
return 1
}
test2:
alert(sum());//会报错,在执行到sum()函数所在的语句之前,变量sum不会保留有对函数的引用
var sum = function (){
return 1
}