返回

JavaScript函数:初学者指南

前端

JavaScript函数是用于将代码组织成可重用块的一种语法结构。函数可以接受输入,执行操作并返回输出。函数可以让我们在代码中重复使用相同的逻辑,而无需每次都重新编写它。

函数定义

函数可以通过多种方式定义。最常见的方法是使用function

function myFunction() {
  // 函数体
}

函数体包含了函数的代码。当函数被调用时,函数体中的代码就会执行。

函数调用

函数可以通过使用其名称和括号来调用:

myFunction();

如果函数需要输入,则需要在括号中传递输入。例如,以下函数接受一个数字并返回其平方:

function square(number) {
  return number * number;
}

square(5); // 返回 25

函数参数

函数的参数是传递给函数的输入。函数的参数在函数定义中指定。例如,以下函数接受一个数字和一个字符串作为参数:

function myFunction(number, string) {
  // 函数体
}

函数返回值

函数可以返回一个值。函数的返回值在函数定义中使用return指定。例如,以下函数返回一个数字:

function square(number) {
  return number * number;
}

square(5); // 返回 25

匿名函数

匿名函数是指没有名称的函数。匿名函数通常用于一次性任务。例如,以下匿名函数用于将数组中的每个元素加倍:

const doubledArray = arr.map(function (num) {
  return num * 2;
});

箭头函数

箭头函数是 ES6 中引入的一种新的函数语法。箭头函数比传统函数更简洁。例如,以下箭头函数将数组中的每个元素加倍:

const doubledArray = arr.map((num) => num * 2);

立即执行函数

立即执行函数是指在定义后立即调用的函数。立即执行函数通常用于初始化代码或创建私有作用域。例如,以下立即执行函数用于初始化全局变量:

(function () {
  const myGlobalVariable = 10;
})();

console.log(myGlobalVariable); // 输出 10

生成器函数

生成器函数是返回迭代器的函数。生成器函数使用yield关键字来生成迭代器。例如,以下生成器函数生成斐波那契数列:

function* fibonacci() {
  let [prev, curr] = [0, 1];
  while (true) {
    yield curr;
    [prev, curr] = [curr, prev + curr];
  }
}

for (const num of fibonacci()) {
  console.log(num); // 输出斐波那契数列
}

递归函数

递归函数是指在自身内部调用自身的函数。递归函数通常用于解决具有子问题的复杂问题。例如,以下递归函数用于计算阶乘:

function factorial(num) {
  if (num === 0) {
    return 1;
  } else {
    return num * factorial(num - 1);
  }
}

factorial(5); // 返回 120

总结

函数是JavaScript中用得最广泛的一种语法。函数可以让我们在代码中重复使用相同的逻辑,而无需每次都重新编写它。函数有许多不同的类型,包括传统函数、匿名函数、箭头函数、立即执行函数、生成器函数和递归函数。每种类型的函数都有其独特的用途。