
上QQ阅读APP看书,第一时间看更新
3.1 定义一个函数
函数定义是一个常规的绑定,其中绑定的值是函数。例如,以下代码定义square来引用生成给定数字平方的函数。

使用以关键字function开头的表达式创建函数。函数有一组参数(在本例中,只有x)和一个函数体,其中包含调用函数时要执行的语句。以这种方式创建的函数的函数体必须始终用大括号括起来,即使它只包含一个语句。
一个函数可以有多个参数或根本没有参数。在以下示例中,makeNoise未列出任何参数,而power列出两个参数:

某些函数会生成一个值,例如power和square,而有些函数则不会生成值,例如makeNoise,其唯一的结果是副作用。return语句确定函数返回的值。当控制流遇到这样的语句时,它会立即跳出当前函数并将返回的值提供给调用此函数的代码。return关键字后面没有表达式将导致函数返回undefined。完全没有return语句的函数,例如makeNoise,同样返回undefined。
函数的参数表现得像常规绑定,但它们的初始值由函数的调用者给出,而不是函数本身的代码给出。