函数声明 函数表达式 通俗解释
1、函数声明
var a = 2;
function foo(){
var a = 3;
console.log(a);//输出3
}
foo();//输出3
console.log(a)//输出2
2、函数表达式
var a = 2;
(function foo(){
var a = 3;
console.log(a);//输出3
})();
//foo();//调用的话会报错
console.log(a)//输出2
3、区分
函数声明和函数表达式区分的简单方法:
function关键词出现的位置,function若是第一个词,就是函数声明。
否则就是一个函数表达式。
4、区别
函数声明和函数表达式最重要的区别是:函数名称标识符的作用域会绑定在何处。
第一个代码段foo会绑定在所在的作用域中,可以通过foo()访问。
第二个代码段中的foo会绑定在函数表达式自身的函数中,而不是所在的作用域中,即只能在函数表达式中访问,外部不能访问;同时好处是不会污染外部作用域(变量)。
作者:孟繁贵 Email:meng010387@126.com 期待共同进步!