1. 匿名函数
匿名函数是JavaScript中常用的一种高级函数形式。它没有函数名,并且可以直接作为其他函数的参数或返回值。以下是一个匿名函数的例子:
javascriptCopy code
const sum = function (a, b) {
return a + b;
};
上述代码定义了一个名为sum的匿名函数,它接受两个参数并返回它们的和。
2. 高阶函数
高阶函数是指能够接受一个或多个函数作为参数,或者返回一个函数的函数。它们可以用于实现函数的组合、封装和抽象。以下是一个高阶函数的例子:
javascriptCopy code
function applyOperation(a, b, operation) {
return operation(a, b);
}
const result = applyOperation(5, 3, function (x, y) {
return x * y;
});
上述代码中,applyOperation是一个高阶函数,它接受两个数字和一个操作函数作为参数,并将这两个数字传递给操作函数进行计算。
3. 纯函数
纯函数是指在相同的输入下始终返回相同的输出,并且没有副作用的函数。纯函数对于函数式编程至关重要,它们使得代码更易于测试、调试和推理,并且避免了意外的副作用。以下是一个纯函数的例子:
javascriptCopy code
function square(x) {
return x * x;
}
上述代码中,square函数接受一个数字作为输入,并返回它的平方。
4. 高阶数组方法
JavaScript提供了许多高阶数组方法,如map、filter、reduce等,它们能够对数组进行遍历、转换和聚合操作。这些方法能够简化代码,并提供更高效的数组处理方式。以下是一个使用高阶数组方法的例子:
javascriptCopy code
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(function (x) {
return x * 2;
});
const evens = numbers.filter(function (x) {
return x % 2 === 0;
});
const sum = numbers.reduce(function (acc, curr) {
return acc + curr;
}, 0);
上述代码中,map方法将数组中的每个元素乘以2,filter方法筛选出偶数,reduce方法计算数组元素的总和。
5. 函数柯里化
函数柯里化是一种将接受多个参数的函数转化为接受一个参数并返回新函数的技术。它可以帮助我们实现函数的复用和延迟执行。以下是一个函数柯里化的例子:
javascriptCopy code
function add(x) {
return function (y) {
return x + y;
};
}
const add5 = add(5);
const result = add5(3); // 输出 8
上述代码中,add函数接受一个参数,并返回一个新函数,新函数接受另一个参数并返回它们的和。通过函数柯里化,我们可以创建特定的功能函数,比如在上述例子中,我们创建了一个加5的函数add5。
6. 函数组合
函数组合是将多个函数组合在一起形成新的函数的技术。它可以让我们将多个函数的逻辑连接起来,形成一个更高级的函数。以下是一个函数组合的例子:
javascriptCopy code
function add1(x) {
return x + 1;
}
function multiply2(x) {
return x * 2;
}
const add1AndMultiply2 = function (x) {
return multiply2(add1(x));
};
const result = add1AndMultiply2(3); // 输出 8
上述代码中,add1AndMultiply2函数将add1和multiply2两个函数组合在一起,先将输入加1,然后再乘以2。
7. 递归函数
递归函数是指在函数体内调用自身的函数。递归是一种强大的编程技术,用于解决需要重复处理的问题。以下是一个递归函数的例子:
javascriptCopy code
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
const result = factorial(5); // 输出 120
上述代码中,factorial函数计算一个数字的阶乘,通过递归调用自身来实现。