ZetCode

JavaScript return 关键字

最后修改于 2025 年 4 月 16 日

在本文中,我们将展示如何使用 return 关键字从 JavaScript 函数中返回值。

return 关键字

return 关键字用于指定函数被调用时应该返回的值。当 JavaScript 遇到 return 语句时,它会立即退出函数并将指定的值返回给调用者。

JavaScript 中的函数可以返回任何有效值:数字、字符串、对象、数组、其他函数,甚至没有值 (undefined)。return 语句是可选的;没有 return 语句的函数隐式地返回 undefined。

return 关键字有两个主要用途:提供来自函数的输出并提前终止函数的执行。它是 JavaScript 中函数行为的一个基本组成部分。

基本函数返回

return 最简单的用法是从函数中提供一个值。

main.js
function add(a, b) {
    return a + b;
}

const result = add(5, 3);
console.log(result);

此示例显示了一个基本函数,该函数返回两个数字的和。return 语句计算总和并将其作为函数的结果提供。然后将返回值存储在 result 变量中。

$ node main.js
8

从函数中提前返回

Return 可用于在到达函数末尾之前退出函数。

main.js
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

返回多个值

虽然函数只能返回一个值,但您可以使用对象或数组返回多个值。

main.js
function getPerson() {
    return {
        name: 'John Doe',
        age: 30,
        occupation: 'Developer'
    };
}

const person = getPerson();
console.log(person.name);

此函数返回一个包含多个属性的对象。然后,调用者可以访问这些属性中的任何一个。这是一种用于分组相关数据的常见模式。

$ node main.js
John Doe

返回函数

函数可以返回其他函数,从而实现强大的模式,如闭包。

main.js
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。

main.js
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

箭头函数在使用简洁的函数体语法时具有隐式返回。

main.js
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 经常用于函数中的早期验证。

main.js
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 - 语言参考

在本文中,我们演示了如何使用 return 关键字来控制 JavaScript 中的函数输出。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我已经撰写了 1,400 多篇文章和 8 本电子书。我拥有超过十年的编程教学经验。

查看 所有 JavaScript 教程。