为什么console.log说未定义,然后是正确的值?

时间:2014-06-21 14:50:59

标签: javascript console.log

console.log("hi") gives 
undefined
hi

console.log(1+1) gives 
undefined
2

无论是字符串还是整数计算,我都会得到未定义的正确答案。

为什么我会收到未定义的消息?有没有一种避免它的好方法?

5 个答案:

答案 0 :(得分:21)

控制台将打印评估表达式的结果。评估console.log()的结果为undefined,因为console.log未明确返回某些内容。它具有打印到控制台的副作用。

您可以使用许多表达式观察到相同的行为:

> var x = 1;
undefined;

赋值表达式不会生成值,因此再次将undefined打印到控制台。

作为一个反例,包含数学运算符的表达式确实产生一个打印到控制台而不是undefined的值:

> 2 + 2;
4

答案 1 :(得分:8)

undefinedconsole.log()的返回值。这是Chrome JS控制台的标准行为

答案 2 :(得分:2)

控制台显示输入的返回值。 console.log()不返回任何内容,因此未定义。

您只需直接输入控制台即可获得结果

答案 3 :(得分:2)

返回console.log(...)的值。

定义这样的两个函数,你会明白为什么。

function functionA() {
  return 1; 
}
function functionB() {
  return;
}

functionB()返回undefined。

enter image description here

答案 4 :(得分:1)

这是因为console.log()没有返回值(即返回undefined)。您输入控制台的任何内容的结果首先打印到控制台,然后稍后来自console.log的消息到达控制台并打印。

如果浏览器未显示未定义,则表示它已注意到您的控制台输入仅打印到控制台,因此跳过显示结果。

相关问题