定义函数

函数定义是一个常规绑定,其中绑定的值是一个函数。 例如,这段代码定义了square,来引用一个函数,它产生给定数字的平方:

  1. const square = function(x) {
  2. return x * x;
  3. };
  4. console.log(square(12));
  5. // → 144

函数使用以关键字function起始的表达式创建。 函数有一组参数(在本例中只有x)和一个主体,它包含调用该函数时要执行的语句。 以这种方式创建的函数的函数体,必须始终包在花括号中,即使它仅包含一个语句。

一个函数可以包含多个参数,也可以不含参数。在下面的例子中,makeNoise函数中没有包含任何参数,而power则使用了两个参数:

  1. var makeNoise = function() {
  2. console.log("Pling!");
  3. };
  4. makeNoise();
  5. // → Pling!
  6. const power = function(base, exponent) {
  7. let result = 1;
  8. for (let count = 0; count < exponent; count++) {
  9. result *= base;
  10. }
  11. return result;
  12. };
  13. console.log(power(2, 10));
  14. // → 1024

有些函数会产生一个值,比如powersquare,有些函数不会,比如makeNoise,它的唯一结果是副作用。 return语句决定函数返回的值。 当控制流遇到这样的语句时,它立即跳出当前函数并将返回的值赋给调用该函数的代码。 不带表达式的return关键字,会导致函数返回undefined。 没有return语句的函数,比如makeNoise,同样返回undefined

函数的参数行为与常规绑定相似,但它们的初始值由函数的调用者提供,而不是函数本身的代码。