何时使用return,以及返回的数据会发生什么?

时间:2011-08-25 08:19:37

标签: javascript return

有什么区别:

function bla1(x){console.log(x)}

function bla(x){return console.log(x)}

我应该在哪些情况下使用return

另外,当从函数返回一个值时,会发生什么?它存放在某个地方吗?

5 个答案:

答案 0 :(得分:22)

  

有什么区别

第一个函数返回undefined(因为它没有显式return),第二个函数返回console.log返回的任何内容。

  

我应该在哪些情况下使用return?

当函数生成某个值并且您想将其传递回调用者时。以Math.pow为例。它需要两个参数,base和exponent,并将引发的基数返回给指数。

  

当从函数返回一个值时,会发生什么?它存放在某个地方吗?

如果要存储返回值,则必须将其分配给变量

var value = someFunction();

这会将someFunction的返回值存储在value中。如果在不指定返回值的情况下调用该函数,则会以静默方式删除该值:

someFunction();

这些是编程基础知识,不仅与JavaScript相关。您应该找到一本介绍这些基础知识的书,尤其是JavaScript,我建议您阅读MDN JavaScript Guide。也许关于Functions的维基百科文章也很有帮助。

答案 1 :(得分:7)

返回函数是一种从函数传回数据的方法。

示例:

function test(){
   var test = 1+1;
   return test;
}

var feedback = test(); //feedback would now contain the value 2 if outputted.

我们还可以将一个变量发送到函数中,然后将其返回。

示例2:

 function test(i){
    i= i+1;
    return i;
 }

 var feedback = test(1); //feedback would also output the value 2.

答案 2 :(得分:1)

正如您已经提到的,return使您可以调用函数并保存其返回值。

这是一个小例子:

function bla(x) { return "blablabla"; }

如果我调用该方法,我将获得一个带有blablabla的字符串:

var blastring = bla(x);
alert(blastring);

这会导致使用blablabla发出警报。

答案 3 :(得分:0)

使用function指定console.log的值。您可以使用此值进行进一步操作或将其存储到变量中等等。

return undefined s function以来,您问题中的示例是等效的,因为未达到return语句的undefined也将返回function sum(arr) { var s = 0; for (var index in arr) { s += arr[index]; } return s; } function prodsum(arr, scalar) { return scalar * sum(arr); } console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3)); 。但是,让我举个例子:

return

结果将为165.如果我们移除function,则returnundefined function sum(arr) { var s = 0; for (var index in arr) { s += arr[index]; } s; } function prodsum(arr, scalar) { scalar * sum(arr); } console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3));

undefined

,结果也是function。基本上,如果您希望return得出结论或最终价值,那么您就会有START /B /wait "runas /user:administrator & cd C:\users\MyName\dropbox\!!GIT_HUB_REPOS_ALL\tangycode.github.io & hexo generate & hexo serve --draft" START /B "" http://localhost:4000/

答案 4 :(得分:0)

如果您只是在函数中添加return;。它会停止执行该功能。