什么"返回"在Javascript中做什么?

时间:2017-06-10 15:24:18

标签: javascript return console.log

我刚学会了自己如何使用互联网上的教程进行编码。 我目前正在尝试学习Javascript,而且我并非真的不喜欢"返回"的目的。我做了一个"摇滚,纸,剪刀"在我的课程结束时,使用返回功能。游戏看起来像这样:

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if(computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
} console.log("Computer: " + computerChoice);

var compare = function(choice1, choice2){
    if(choice1 === choice2){
        return "The result is a tie!";
    }
    else if(choice1 === "rock"){
        if(choice2 === "scissors"){
            return "rock wins";
        }
        else{
            return "paper wins";
        }
    }
    else if(choice1 === "paper"){
        if(choice2 === "rock"){
            return "paper wins";
        }
        else{
            return "scissors wins";
        }
    }
    else if(choice1 === "scissors"){
        if(choice2 === "paper"){
            return "scissors wins";
        }
        else{
            return "rock wins";
        }
    }
};
compare(userChoice, computerChoice);

如果我在这里使用console.log("....")代替"return"会有什么区别?

5 个答案:

答案 0 :(得分:2)

根据W3Schools,

  

return语句停止执行函数并返回a   该函数的值。

但是

  

console.log写入浏览器控制台。

换句话说,除非您打开“开发者工具”,否则无法看到console.log的输出

根据MDN(一个更可靠的来源),

  

在函数中调用return语句时,执行   此功能已停止。如果指定,则返回给定值   函数调用者。如果省略表达式,则undefined为   而是返回。以下的返回语句都打破了   功能执行:

return;
return true;
return false;
return x;
return x + y / 3;

但是

  

console.log()向Web控制台输出一条消息。

例如,

function myFunction() {
    return Math.PI;
} 
调用该函数时,

将返回3.141592653589793

但是在网页上使用console.log不会显示任何内容(开发人员工具除外)。

答案 1 :(得分:1)

return的概念是返回一些东西。

前你可以var winner = compare(userChoice, computerChoice); 这会将winner设置为函数compare()中的字符串返回,您可以稍后使用该var进行显示。所以在所有情况下,获胜者可以等于任何你的if / else字符串。所以对于另一个前者,获胜者可以被读作winner = 'rock wins'(如果那是合乎逻辑的赢家)

答案 2 :(得分:1)

在JavaScript中,大多数东西都是表达式,每个表达式都有一个值。这可以是一个数字(5),一个字符串("Hello, World!"),一个对象({ foo: 'bar' })或其他东西,如正则表达式。

当您使用运营商时,例如choice1 === "rock",这也是一个表达式,它有一个布尔值(true或false)。表达式5 + 3也有一个值。它是8

当你调用一个函数时,它也是一个有值的表达式。例如,prompt函数具有用户输入的值。这是您拨打prompt(...)时收到的内容。函数调用的值被称为&#34;返回值&#34;那个功能。

定义自己的函数时,也可以给它们一个返回值。后来,当你调用函数时,这个返回值就是你得到的。还记得学校数学课上的功能吗?像f(x) = x * x这样的事情?当你&#34;打电话&#34; f 5,{25}是&#34;函数调用&#34;:f(5) = 5 * 5 = 25的值。

现在,让我们定义一个具有返回值的JavaScript函数:

&#13;
&#13;
function add (a, b) {
  return a + b; // make the sum of a and b the return value of "add"
}

var result = add(5, 3); // store the value of the function call
console.log(result); // should log 8
&#13;
&#13;
&#13;

许多内置JavaScript函数都有一个返回值:Math.min()返回传递给它的最小参数,document.getElementById()返回带有传递给它的id的HTML元素。

对于某些功能,返回动作的结果没有任何意义。 console.log()的结果应该是什么?这些函数返回值undefined。当您自己的函数没有返回语句时,它们的返回值为undefined

非常重要的是要注意,函数的执行在命中​​return语句时会停止。然后立即返回到脚本中调用函数的位置:

&#13;
&#13;
function test () {
  console.log('Hello 1');
  return 5; // return to the caller
  console.log('Hello 2'); // will not execute
}

var result = test();
console.log(result); // 5
&#13;
&#13;
&#13;

如果您在return ...;之后省略了值,那么您只需说return;,那么返回值也将是undefined。如果要在没有返回值的情况下停止执行,可以使用它:

&#13;
&#13;
function divide (a, b) {
  return a / b;
}

function printQuotient (a, b) {
  if (b === 0) {
    // the divisor is zero, do nothing
    return;
  }
  
  // divisor is not zero, print the result of the division
  console.log(divide(a, b));
}

printQuotient(10, 5); // prints 2
printQuotient(10, 0); // prints nothing
&#13;
&#13;
&#13;

答案 3 :(得分:0)

console.log 将在浏览器的控制台窗口中显示或发出传递给log方法的参数,几乎可以在代码中的任何位置使用。

同时使用 return 语句时,该函数将停止执行,并返回指定的值。

了解更多;

答案 4 :(得分:0)

在函数中遇到返回时。它将在调用函数的代码之后立即返回。如果在return语句之后没有指定任何内容,那就是发生的一切。但是,如果返回文字像2或3等,则返回文字。您还可以返回布尔值&#34; true / false&#34;,字符串或变量。 Console.log()表示名称的含义,它将字括号显示在开发控制台的括号内。它主要用于故障排除。