为什么JavaScript中的return语句什么也不返回?

时间:2019-02-08 19:31:58

标签: javascript arrays return

在将此问题标记为重复之前,请了解我是JS的新手,并且始终担心会问到stackoverflow问题。

我不明白为什么除非将此函数调用包含在console.log中,否则调用此函数什么都不返回。

如果将函数调用包含在console.log中,则会得到预期的输出“此数组中有3个元素”,但是如果没有console.log,我什么也不会得到。

var counter = function (arr) {
    return 'There are ' + arr.length + ' elements in this array';
};

counter(["shaun", "sara", "jessica"])

我想知道的是如何在不使用console.log的情况下获取此函数的输出,以及为什么没有console.log却不输出任何内容的原因。

3 个答案:

答案 0 :(得分:1)

  

console.log()是用于将信息打印到打印机的功能。   安慰。另一方面,return是调用以将一些值传回   直到拨打电话的地方。

     

通过-CodeCademy Forum


  

return终止一个函数,并可能向该函数的调用者返回一个值(而console.log()不会影响代码流。

     

通过-Difference between console.log and return in javascript?


检查并运行以下代码段,以获取有关两者如何工作的实际示例:

var x = document.getElementById("first");
var y = document.getElementById("last");
var z = document.getElementById("output");

function printName(){
  z.innerText = fullName();
}

function fullName(){
  console.log(x.value + " " + y.value); // this wont push the concatenated name to printName()
  return x.value + " " + y.value; // this will push the concatenated name to printName()
  
  alert("y u do dis?"); // this won't run anymore since the return statement above prevents the function from invoking anything else
}

document.getElementById("btn").addEventListener("click", printName)
<input type="text" id ="first" />
<input type="text" id ="last" />
<button id="btn">Click Me</button>
<br/>
<div id="full">Hello <span id="output"></span>!!</div>


如果上面的return语句被删除,则仅console.log()不会向printName()返回任何内容,除非在控制台中显示串联的名称。

答案 1 :(得分:0)

var counter = function (arr) {
        return 'There are ' + arr.length + ' elements in this array';
    };

let functionResult = counter(["shaun", "sara", "jessica"]);

您需要将结果返回到变量。 然后,您可以根据需要使用它。

答案 2 :(得分:0)

因此,您实际上是在返回某些东西,如果您想在另一个函数中或其他地方使用此函数的返回值,则没有console.log()就无法查看它。像

这样的变量
const myCounter = counter(["shaun", "sara", "jessica"])
console.log(myCounter)

所有返回的工作就是使函数的结果可用于其他地方。如果您不是通过console.log或其他方法(将其放入HTML元素或其他内容)来显示它,则您永远不会在任何地方“看到”它,并且看起来该函数没有做任何事情,即使是。