JavaScript定义函数的方式有两种:一种是函数声明,另一种就是函数表达式。

函数声明的语法是这样的:

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

首先是function关键字,然后是函数的名字,这就是指定函数的方式。
关于函数声明,它的一个重要特征就是函数声明提升,意思就是执行代码之前会先读取函数声明。这就意味着可以把函数声明放在调用它的语句后面。

1
2
3
4
sayHi();
function sayHi(){
alert('Hi');
}

这个例子不会抛出错误,因为在代码执行之前会先读取函数声明。
第二种创建函数的方式是使用函数表达式。函数表达式有几种不同的语法形式,下面是最常见的一种形式。

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

这种形式看起来好像是常规的变量赋值语句,即创建一个函数将它赋值给变量functionName。这种情况下创建的函数叫做匿名函数。因为function关键字后没有标识符。匿名函数的name属性是空字符串。
注意:函数表达式与其它表达式一样,在使用前必须先赋值。以下代码会导致错误:

1
2
3
4
sayHi();// 错误,函数还不存在
var sayHi = function(){
alert("Hi");
}