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

新手上路,请多包涵
console.log("hi") gives
undefined
hi

console.log(1+1) gives
undefined
2

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

为什么我会收到未定义的消息?有没有好的办法避免呢?

原文由 Michael Durrant 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 714
2 个回答

控制台将打印计算表达式的结果。评估 console.log() 的结果是 undefined 因为 console.log 没有明确返回一些东西。它具有打印到控制台的副作用。

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

 > var x = 1;
undefined;

变量声明不会产生值,因此再次 undefined 打印到控制台。

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

 > 2 + 2;
4

原文由 James Allardice 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 adjan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题