为什么 console.log 输出与 return 输出不同
why is console.log output different from a return output
我是 JavaScript 的新手,很抱歉提出这个业余问题,但我觉得通过回答可以帮助我更好地理解在线课程中的课程 material 和作业.这里是。当我这样写 console.log 时:
var getKeys = function(objOne){
for(var property in objOne){
console.log(property);
}
};
控制台returns:
"name"
"age"
...但是如果我将 console.log 更改为 "return",就像这样:
var getKeys = function(objOne){
for(var property in objOne){
return property;
}
};
输出returns:
"name"
为什么 returns 不同?
因为return
退出函数。您在第一个 属性 退出函数,因此只有一个。
The return statement ends function execution and specifies a value to
be returned to the function caller.
根据 spec,(强调我的)
A return
statement causes a function to cease execution and return a
value to the caller.
因此您的 for...in
循环将永远不会到达第 2 次迭代。
console.log
和return
是完全不同的东西。
第一种情况,你看
"name"
"age"
> undefined
因为您告诉控制台显式记录键,但是第二种情况,使用 return
关键字,您告诉函数终止并且 return 值 "name"
,这就是为什么你只看到
> "name"
console.log()
将把你传入的参数打印到控制台,其中 return
停止执行你的函数,returns 无论你告诉它什么。
一旦函数遇到return语句,它将停止执行;所以在第一个例子中,它循环遍历了两者。在第二个中,它点击 return 语句并说 "Ok, I'm done."
我是 JavaScript 的新手,很抱歉提出这个业余问题,但我觉得通过回答可以帮助我更好地理解在线课程中的课程 material 和作业.这里是。当我这样写 console.log 时:
var getKeys = function(objOne){
for(var property in objOne){
console.log(property);
}
};
控制台returns: "name" "age"
...但是如果我将 console.log 更改为 "return",就像这样:
var getKeys = function(objOne){
for(var property in objOne){
return property;
}
};
输出returns: "name"
为什么 returns 不同?
因为return
退出函数。您在第一个 属性 退出函数,因此只有一个。
The return statement ends function execution and specifies a value to be returned to the function caller.
根据 spec,(强调我的)
A
return
statement causes a function to cease execution and return a value to the caller.
因此您的 for...in
循环将永远不会到达第 2 次迭代。
console.log
和return
是完全不同的东西。
第一种情况,你看
"name"
"age"
> undefined
因为您告诉控制台显式记录键,但是第二种情况,使用 return
关键字,您告诉函数终止并且 return 值 "name"
,这就是为什么你只看到
> "name"
console.log()
将把你传入的参数打印到控制台,其中 return
停止执行你的函数,returns 无论你告诉它什么。
一旦函数遇到return语句,它将停止执行;所以在第一个例子中,它循环遍历了两者。在第二个中,它点击 return 语句并说 "Ok, I'm done."