函数声明、函数表达式、匿名函数的区别

1,507 阅读1分钟

一、 基本定义

1. 函数声明

1.1 概念

使用 function声明函数,并指定函数名。

function fun() {
	// ......
}

1.2 特性

函数声明可在当前作用域下提前调用执行。

fun(); // 正确,函数声明可提前调用
function fun() {
    // ...... 
}

2. 函数表达式

1.1 概念

使用 function 声明函数,但未指定函数名,将匿名函数赋予一个变量。

var fun = function () {
  // ......
}

1.2 特性

fun(); // 错误,fun 未保存对函数的引用,函数调用需要放在函数表达式后面
var fun = function(){
    // ...... 
}

3. 匿名函数

3.1 概念

使用function 声明函数,但未指定函数名,并且未赋予一个变量,给匿名函数赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等。

function () { // 匿名函数
    // ...... 
}