JS的立即执行函数

js立即执行函数

在js中,我们经常回看到一些立即执行的函数,而要想理解立即执行函数,那么要先明白几个概念:

  • 函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。
  • 函数表达式:var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式。
  • 匿名函数:function () {}; 使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式。

这里理解表达式是什么,对我个人是关键。表达式就是通过操作数操作符组合,以求得数值的式子。

函数声明和函数表达式的不同点:

  • 函数声明和变量声明一样,会被声明提升的。
  • 表达式后可以直接加(),表示立即调用

举个程序的例子

//源程序
var getName = function(){
console.log(2);
}
function getName (){
console.log(1);
}
getName();
//实际js引擎处理后
var getName; //变量声明提升
function getName(){ //函数声明提升到顶部
console.log(1);
}
getName = function(){ //变量赋值依然保留在原来的位置
console.log(2);
}
getName(); // 最终输出:2