Javascript中的return语句可以一次返回多个内容吗?

时间:2017-04-11 21:58:13

标签: javascript return

我刚刚听到Treehouse课程中的一个人说JavaScript中的return语句不能同时返回多个值,他给出的例子是:

function example() {
var message = "HI";
return 1, message, 'some text';
}

我决定自己测试,但不使用“,”而是使用“+”运算符,并且在Google Chrome上测试时效果很好。这是我调整代码的方式:

function example() {
    var message1 = ' Hi';
    var message2 = ' How are you?';
    return 1 + message1 + message2 + ' Some text!' + message1.toUpperCase();
}

所以我的问题是,返回语句可以表现得像这样,还是简单的运气,我做了什么?对于他的陈述“返回陈述不能同时返回多个值”,Threehouse家伙是否正确?

感谢您的帮助。

PS:我是JS的新手,所以如果可能的话,请尝试用非技术词汇回答! :)

2 个答案:

答案 0 :(得分:1)

您的代码也会返回单个值。为了更好地理解这个例子,只有一行:

function example() {
var message1 = ' Hi';
var message2 = ' How are you?';
var mySingleReturnValue = 1 + message1 + message2 + ' Some text!' + message1.toUpperCase();
return mySingleReturnValue

}

所以你所做的只是将几个“值”连接到一个字符串的值。我想你应该从javascript(字符串,数字,对象等)的学习类型和你可以用它们做的基本事情(添加,减去,连接等)开始。

答案 1 :(得分:1)

一般来说,函数只返回一个值 - 但是一个值可以是值的集合。在JavaScript中,您可以使用具有命名属性的对象执行此操作。在其他语言(如C#和Python)中,您可以使用元组(用于类似目的) - 几乎任何语言都可以让您返回一个数组(尽管在这种情况下您丢失了对象类型信息)。

以下是使用对象的JavaScript示例:

function returnMultiple() {
    return { foo: "bar", baz: "qux" };
}

var multiple = returnMultiple();
console.log( multiple.foo );
console.log( multiple.baz );