![JavaScript编程精解(原书第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/171/30573171/b_30573171.jpg)
上QQ阅读APP看书,第一时间看更新
3.1 定义一个函数
函数定义是一个常规的绑定,其中绑定的值是函数。例如,以下代码定义square来引用生成给定数字平方的函数。
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0044_0001.jpg?sign=1739257788-lPpaxqXlookkvWNNfafdAVooMC7hSy7S-0-a99504d11c609bbd0ace61e8dbca2627)
使用以关键字function开头的表达式创建函数。函数有一组参数(在本例中,只有x)和一个函数体,其中包含调用函数时要执行的语句。以这种方式创建的函数的函数体必须始终用大括号括起来,即使它只包含一个语句。
一个函数可以有多个参数或根本没有参数。在以下示例中,makeNoise未列出任何参数,而power列出两个参数:
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0045_0001.jpg?sign=1739257788-OVdrvqeV0WQsS82LDoL7KGo0ICBRw1EJ-0-fceed9ad5ed6ecc84f5ab975feeb961f)
某些函数会生成一个值,例如power和square,而有些函数则不会生成值,例如makeNoise,其唯一的结果是副作用。return语句确定函数返回的值。当控制流遇到这样的语句时,它会立即跳出当前函数并将返回的值提供给调用此函数的代码。return关键字后面没有表达式将导致函数返回undefined。完全没有return语句的函数,例如makeNoise,同样返回undefined。
函数的参数表现得像常规绑定,但它们的初始值由函数的调用者给出,而不是函数本身的代码给出。