在编程中,function(函数)是一个非常重要的概念,它允许我们将一段可重复使用的代码封装起来,提高代码的可读性和可维护性,本文将介绍function的基本用法、参数传递、返回值、以及一些高级特性,帮助你更好地掌握函数的使用。
什么是function?
函数是一段可重复调用的代码块,它可以接收输入参数,执行特定任务,并返回结果,使用函数可以避免代码重复,提高程序的结构化程度。

基本语法(以JavaScript为例)
function 函数名(参数1, 参数2, ...) {
// 函数体
return 返回值; // 可选
}
示例:
function greet(name) {
return "Hello, " + name + "!";
}
console.log(greet("Alice")); // 输出:Hello, Alice!
function的参数传递
函数可以接收零个或多个参数,参数可以是基本数据类型、对象或函数(回调函数)。
(1)默认参数
如果调用函数时未提供参数,可以使用默认值:
function sayHello(name = "Guest") {
console.log("Hello, " + name);
}
sayHello(); // 输出:Hello, Guest
sayHello("Bob"); // 输出:Hello, Bob
(2)剩余参数(Rest Parameters)
使用可以接收任意数量的参数:
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}
console.log(sum(1, 2, 3)); // 输出:6
function的返回值
函数可以通过return语句返回一个值,如果没有return,函数默认返回undefined。
示例:
function add(a, b) {
return a + b;
}
let result = add(3, 5); // result = 8
匿名函数与箭头函数
除了传统的function声明,还可以使用匿名函数和箭头函数(Arrow Function)。
(1)匿名函数
const greet = function(name) {
return "Hello, " + name;
};
console.log(greet("Tom")); // 输出:Hello, Tom
(2)箭头函数(ES6+)
箭头函数更简洁,并且没有自己的this绑定:
const greet = (name) => `Hello, ${name}`;
console.log(greet("Jerry")); // 输出:Hello, Jerry
高阶函数(Higher-Order Functions)
高阶函数是指接收函数作为参数或返回函数的函数,常见于函数式编程。
示例(map函数):
const numbers = [1, 2, 3]; const doubled = numbers.map((num) => num * 2); console.log(doubled); // 输出:[2, 4, 6]
递归函数
函数可以调用自身,这种技术称为递归,常用于解决分治问题(如阶乘、斐波那契数列)。
示例(计算阶乘):
function factorial(n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
console.log(factorial(5)); // 输出:120
闭包(Closure)
闭包是指函数能够访问其词法作用域外的变量,即使外层函数已经执行完毕。
示例:
function createCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
- 函数是封装代码的基本单元,提高代码复用性。
- 参数可以是默认值、剩余参数,甚至其他函数(高阶函数)。
- 返回值通过
return传递,无返回值则返回undefined。 - 箭头函数更简洁,适合回调场景。
- 递归适用于分治问题,但要注意终止条件。
- 闭包允许函数访问外部作用域,常用于封装私有变量。
掌握函数的各种用法,可以让你写出更高效、更优雅的代码! 🚀
