在JavaScript中,有两种方式可以定义一个函数,一个是函数声明,一个是函数表达式。

一 函数声明

函数声明的语法如下:

function functionName(arg0, arg1, arg2) {
   //函数体
}

函数声明的最重要的一个特征是函数声明提升,意思是在执行代码之前会先读取函数声明,所以函数声明可以放在调用函数语句之后。

sayHello();

function sayHello(){
    console.log("Hello");
}

上述代码可以正常执行,不会报错。

二 函数表达式

函数表达式的语法形式如下:

var functionName = function(arg0, arg1, arg2) {
    //函数体
}

这种形式看起来像常规的变量赋值,先创建一个匿名函数,然后赋值给变量functionName。我们知道在JS中如果要想使用一个变量,必须先给这个变量赋值,所以函数表达式也不例外,在调用之前,必须先给它赋值。否则会报错。

sayHi(); //在这里调用会报错
var sayHi = function(){
	console.log("Hi");
}
sayHi(); //Hi

函数声明和函数表达式都是用来定义一个函数的,区别就是函数声明存在函数声明,可以在声明前调用。而函数表达式则必须在赋值语句之后再调用。



本文转载:CSDN博客