JavaScript return 关键字
最后修改于 2025 年 4 月 16 日
在本文中,我们将展示如何使用 return 关键字从 JavaScript 函数中返回值。
return 关键字
return 关键字用于指定函数被调用时应该返回的值。当 JavaScript 遇到 return 语句时,它会立即退出函数并将指定的值返回给调用者。
JavaScript 中的函数可以返回任何有效值:数字、字符串、对象、数组、其他函数,甚至没有值 (undefined)。return 语句是可选的;没有 return 语句的函数隐式地返回 undefined。
return 关键字有两个主要用途:提供来自函数的输出并提前终止函数的执行。它是 JavaScript 中函数行为的一个基本组成部分。
基本函数返回
return 最简单的用法是从函数中提供一个值。
function add(a, b) {
return a + b;
}
const result = add(5, 3);
console.log(result);
此示例显示了一个基本函数,该函数返回两个数字的和。return 语句计算总和并将其作为函数的结果提供。然后将返回值存储在 result 变量中。
$ node main.js 8
从函数中提前返回
Return 可用于在到达函数末尾之前退出函数。
function checkAge(age) {
if (age < 18) {
return 'Minor';
}
return 'Adult';
}
console.log(checkAge(15));
console.log(checkAge(25));
在这里,如果年龄小于 18 岁,该函数将提前返回。否则,它会继续到下一个 return 语句。这种模式在函数中用于条件返回很常见。
$ node main.js Minor Adult
返回多个值
虽然函数只能返回一个值,但您可以使用对象或数组返回多个值。
function getPerson() {
return {
name: 'John Doe',
age: 30,
occupation: 'Developer'
};
}
const person = getPerson();
console.log(person.name);
此函数返回一个包含多个属性的对象。然后,调用者可以访问这些属性中的任何一个。这是一种用于分组相关数据的常见模式。
$ node main.js John Doe
返回函数
函数可以返回其他函数,从而实现强大的模式,如闭包。
function createGreeter(greeting) {
return function(name) {
return `${greeting}, ${name}!`;
};
}
const greetHello = createGreeter('Hello');
console.log(greetHello('Alice'));
在这里,createGreeter 返回一个记住 greeting 参数的新函数。这演示了如何将 return 与高阶函数一起使用以创建专门的函数。
$ node main.js Hello, Alice!
不返回任何内容
没有 return 语句的函数隐式地返回 undefined。
function noReturn() {
console.log('This function does not return anything');
}
const result = noReturn();
console.log(result);
此函数执行一个操作(记录),但不返回值。当我们将其结果分配给一个变量时,该变量将得到 undefined。这对于执行副作用的函数很常见。
$ node main.js This function does not return anything undefined
箭头函数中的 Return
箭头函数在使用简洁的函数体语法时具有隐式返回。
const square = x => x * x;
const cube = x => {
return x * x * x;
};
console.log(square(4));
console.log(cube(3));
第一个箭头函数隐式地返回 x * x 的结果。第二个使用显式的 return 语句。这两种形式都是有效的,但具有不同的用例。
$ node main.js 16 27
实际用例:输入验证
Return 经常用于函数中的早期验证。
function calculateArea(width, height) {
if (typeof width !== 'number' || typeof height !== 'number') {
return 'Invalid input: width and height must be numbers';
}
if (width <= 0 || height <= 0) {
return 'Invalid input: dimensions must be positive';
}
return width * height;
}
console.log(calculateArea(10, 'five'));
console.log(calculateArea(10, 5));
此函数首先验证其输入,如果验证失败,则提前返回错误消息。只有当所有检查都通过时,它才会计算并返回面积。这种模式使函数更健壮。
$ node main.js Invalid input: width and height must be numbers 50
来源
在本文中,我们演示了如何使用 return 关键字来控制 JavaScript 中的函数输出。