函数
了解函数如何把可复用代码打包、接收输入并返回输出——程序的构建积木。
你将学到
- 函数是什么、为什么要用
- 参数与实参如何工作
- 如何从函数返回值
- 定义函数与调用函数的区别
概念讲解
函数
函数是一段带名字的可复用代码块。你定义一次,调用多次。函数让你避免重复自己(DRY 原则:Don't Repeat Yourself),也把程序组织成易于理解的片段。
定义与调用
// 定义
function greet(name) {
return "Hello, " + name + "!";
}
// 调用
greet("Ada"); // "Hello, Ada!"
greet("Grace"); // "Hello, Grace!"
参数与实参
参数是函数定义里列出的变量(上面的 name)。实参是调用时传入的真实值("Ada")。参数是占位符,实参在本次调用中填充它。
返回值
函数可用 return 把值返回给调用方。return 一执行,函数立即停止。若没有 return,默认返回 undefined。
function add(a, b) {
return a + b;
}
const sum = add(3, 4); // 7
函数为何重要
函数让你:
- 复用代码——写一次,调多次。
- 抽象复杂度——用一个名字藏起细节。
- 单独测试——小函数容易验证。
- 组合——函数调用函数,逐步搭出行为。
现代 JavaScript 还有箭头函数,语法更短:const add = (a, b) => a + b;,大多数场景下与普通函数等效。
示例代码
// 计算折后价格的函数
function applyDiscount(price, discountPercent) {
const discount = price * (discountPercent / 100);
return price - discount;
}
const original = 100;
const salePrice = applyDiscount(original, 20);
console.log(`$ ${original} with 20% off = $ ${salePrice}`);
// $ 100 with 20% off = $ 80
// 箭头函数语法(更短):
const tax = (amount, rate) => amount * rate;
console.log(tax(80, 0.08)); // 6.4
applyDiscount 接收两个参数并返回结果。箭头函数 tax 展示了简单函数的简洁写法。
动手试一试
- Hash Generator
哈希函数接收输入(文本)返回输出(定长哈希)。相同输入总得相同输出。
常见错误
错误写法
忘记调用函数(只写名字不加括号)。
正确做法
greet 是函数对象;greet('Ada') 才是调用。若打印出函数源码而非结果,就是漏了 ()。
错误写法
以为 return 之后的代码还会执行。
正确做法
return 会立即退出函数。其后的行不可达。把最终计算放在 return 之前。
相关资源
相关代码片段
- JavaScript Array Methods
map、filter、reduce 是你传给其他函数的函数。
练习 函数
2 个练习
查阅不认识的术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
动手做项目
通过引导式项目应用所学,含起始代码与解决方案。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。