You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中调用greet函数后console.log返回undefined的原因咨询

解答你的JavaScript函数返回值疑惑

嘿,作为JS新手能注意到这个细节真的很棒!让我一步步帮你搞清楚控制台那行undefined的来历:

首先,咱们拆解代码的执行流程:

  1. 当你调用greet()时,函数内部的console.log("Hi")会先执行,这就是控制台第一行打印Hi的原因,这部分你的判断完全正确。
  2. 这里的核心知识点是:JavaScript中如果函数没有显式的return语句,它默认会返回undefined。你的greet函数只做了打印"Hi"的操作,没有任何返回值,所以greet()这个表达式最终的结果就是undefined。
  3. 而你外层的console.log(greet()),本质是把greet()的返回值作为参数传给console.log,所以它会打印出这个返回值——也就是undefined,这就是第二行日志的来源。

你之前误解了函数执行的输出和返回值的区别:console.log("Hi")是函数内部的输出动作,和函数本身的返回值没有关系。如果想让greet()的返回值是"Hi",可以修改函数:

function greet() { 
  return "Hi"; 
}; 
console.log(greet()); // 此时控制台只会打印"Hi",不会出现undefined

要是你既想让函数内部打印"Hi",又想让它返回"Hi",就这么写:

function greet() { 
  console.log("Hi");
  return "Hi"; 
}; 
console.log(greet()); // 控制台会先打印"Hi",再打印"Hi"

内容的提问来源于stack exchange,提问作者Sergey Pleshakov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:37:10