理解javascript函数表达式和函数声明
1.函数声明
函数声明指函数符号function后面带上函数名,非匿名函数。如下:
// 带函数名
function count (num) {
return num + 1
}
2.函数表达式
指声明一个变量,其指针指向一个匿名函数
// 匿名函数
var count = function (num) {
return num + 1
}
3.区别
当浏览器中javascript解析器向执行环境中加载数据时,解析器会率先读取函数声明,使其在执行任何代码之前都可用,而函数表达式,只有解析器执行到该函数所在代码行时,才会被解释执行。
// 函数count经过函数声明提升过程,将该函数加载到执行环境中
alert(count(1))
function count (num) {
return num + 1
}
上面代码不会报错。
小结
函数声明率先被解析器读取并加载至执行环境,而函数表达式在初始化时才执行。