我需要在JavaScript中使用return语句做什么?

时间:2019-10-18 12:41:56

标签: javascript

我正试图将我的头缠在return语句上,但我看不出为什么要使用它的原因。我的代码可以很好地工作而无需使用... 在两个示例中,我的控制台都打印出10,无论是否使用return都无关紧要。

没有回报:

var sum = 5;

function myFunction() {
    sum += 5;
}

myFunction();

console.log(sum);

有回报:

var sum = 5;

function myFunction() {
    return sum += 5;
}

myFunction();

console.log(sum);

4 个答案:

答案 0 :(得分:1)

默认情况下,函数返回值 undefined 。如果要让函数返回其他值,则需要有一个return语句。

您还可以使用return语句基于某种逻辑来停止执行该函数,再次返回具有某些含义或只是未定义的值。

在OP中的第一个示例中,该函数被调用,并且返回值不用于任何东西,因此返回值是什么都没有关系,并且不需要return语句。

在另一种情况下,返回值可能很重要,例如生成介于0到10之间的整数随机数的函数:

function getRandomInteger(){
  return Math.floor(Math.random() * 11);
}

function showRandomNumber() {
  document.getElementById('s0').textContent = getRandomInteger();
}
<button onclick="showRandomNumber()">Show random number</button>
<span id="s0"></span>

在上面, getRandomInteger 函数需要返回特定值,因此它使用return语句。 showRandomNumber 函数仅显示随机数,因此它不需要return语句,因为调用方(按钮上的侦听器)不在乎返回值是什么。

答案 1 :(得分:0)

以下是您的示例所发生的情况:

var sum = 5; //Sets the sum to =5

function myFunction() {
    return sum += 5; // += reassigns the global (sum) to 10
}

myFunction();

console.log(sum); 

一个更好的例子是这样:

 sum = 5;
 function myFunction() {
     var sumOther = sum + 5;
     return sumOther;
} 
console.log(“sum:” + sum); // 5
console.log(“myFunction:” + myFunction()); // 10

这是您运行函数而不是全局变量“ sum”的方式

答案 2 :(得分:0)

这是因为您使用了在函数外部声明的(全局)变量(函数直接对其进行修改,因此无需返回值)。 但这不是编写函数的好方法,因为它们不可重用,因为它们需要使用适当的全局上下文。更好的是使用这样的东西:

function myFunction(num) {
  return num += 5;
}

var sum = 5;
var result = myFunction(5) ;
console.log(result); // -> 10

此函数可以在不同的上下文中轻松使用,因为它具有参数num并且仅在其上起作用(该函数仅使用在其声明和主体内部声明的值)

答案 3 :(得分:0)

在您的情况下,技巧是函数的作用域。在这两种情况下,变量和都是在全局范围内定义的。当您调用该函数时,它将经历以下步骤:

  1. 查看是否在当前步骤中定义了var sum,因为未定义 在函数内部,向前看一步,看看外部 范围。是的,在这里定义它,开始使用它。
  2. 执行计算。 您正在使用增量运算符sum += 5,因此实际上可以 写为sum = sum + 5。如果您要研究第二种情况, 您会注意到变量现在增加了价值。从那以后 变量取自全局范围,您的函数对其进行了突变。 注意:在这一点上,无论您是否要退货 从功能与否。您的函数只是对外部变量进行了突变。
  3. 最后一步-从函数退出。就像我之前说的,返回值 仅当您想直接使用函数调用的结果时才重要, 例如:var result = myFunction()