console.log("hi") gives
undefined
hi
console.log(1+1) gives
undefined
2
无论是字符串还是整数计算,我都会得到未定义的正确答案。
为什么我会收到未定义的消息?有没有一种避免它的好方法?
答案 0 :(得分:21)
控制台将打印评估表达式的结果。评估console.log()
的结果为undefined
,因为console.log
未明确返回某些内容。它具有打印到控制台的副作用。
您可以使用许多表达式观察到相同的行为:
> var x = 1;
undefined;
赋值表达式不会生成值,因此再次将undefined
打印到控制台。
作为一个反例,包含数学运算符的表达式确实产生一个打印到控制台而不是undefined
的值:
> 2 + 2;
4
答案 1 :(得分:8)
undefined
是console.log()
的返回值。这是Chrome JS控制台的标准行为
答案 2 :(得分:2)
控制台显示输入的返回值。 console.log()不返回任何内容,因此未定义。
您只需直接输入控制台即可获得结果
答案 3 :(得分:2)
返回console.log(...)
的值。
定义这样的两个函数,你会明白为什么。
function functionA() {
return 1;
}
function functionB() {
return;
}
functionB()
返回undefined。
答案 4 :(得分:1)
这是因为console.log()
没有返回值(即返回undefined)。您输入控制台的任何内容的结果首先打印到控制台,然后稍后来自console.log
的消息到达控制台并打印。
如果浏览器未显示未定义,则表示它已注意到您的控制台输入仅打印到控制台,因此跳过显示结果。