为什么console.log输出与返回输出不同

why is console.log output different from a return output

本文关键字:输出 返回 log 为什么 console      更新时间:2023-09-26

我是一个JavaScript新手,很抱歉这个问题很业余,但我觉得通过这个答案可以帮助我更好地理解在线课程中的课程材料和作业。在这里。当我像这样写console.log时:

var getKeys = function(objOne){
  for(var property in objOne){
    console.log(property);
  }
};

控制台的回报:"名称"时代"

…但是如果我把console.log改成"return",像这样:

var getKeys = function(objOne){
  for(var property in objOne){
    return property;
  }
};

输出返回:"名称"

为什么回报不同?

因为return退出了函数。在第一个属性上退出函数,这就是为什么它只有一个。

中数return

return语句结束函数的执行,并指定一个值to返回给函数调用者。

根据规范,(强调我的)

return语句导致函数停止执行并返回A

所以你的for...in循环将永远不会达到第二次迭代。

console.logreturn是完全不同的。

对于第一种情况,您看到
"name"
"age"
> undefined 

,因为您告诉控制台显式地记录键,但在第二种情况下,使用return关键字,您告诉函数终止并返回值"name",这就是为什么您只看到

> "name"

console.log()将把您传入的参数打印到控制台,而return将停止执行您的函数并返回您告诉它的任何内容。

一旦函数碰到return语句,它将停止执行;在第一个例子中,它循环遍历两者。在第二个语句中,它点击返回语句并说:"Ok,我完成了。"