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