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

使用Node生成package.json时,箭头函数直接返回模板字符串为何返回undefined?

为什么箭头函数返回undefined?

嘿,这个问题大概率是箭头函数显式返回和隐式返回的语法坑,或者是你写代码时的小笔误!咱们一步步拆解来看:

先看你能正常工作的第一个函数:

const generatePackageJson = (name) => { 
  const package = ` { "name": "${name}", } `; 
  return package; 
}

这个函数用{}包裹了完整的函数体,并且显式调用了return语句返回生成的模板字符串,逻辑清晰,所以能正确输出包含name参数的结果。

再看你说返回undefined的第二个函数:
你给出的写法是:

const generatePackageJson = (name) => { return ` { "name": "${name}", } `; }

理论上这个函数和第一个的效果应该完全一致,但如果它真的返回undefined,只有一个最可能的原因——你实际写代码时漏掉了return关键字!

比如你不小心写成了这样:

const generatePackageJson = (name) => { ` { "name": "${name}", } `; }

箭头函数的规则是:如果用{}包裹函数体,就不会自动返回函数体内的表达式结果,必须显式写return。上面的代码里只有一个模板字符串表达式,没有任何返回语句,所以函数默认会返回undefined。这是新手用箭头函数时最容易踩的坑之一!

顺便给你补充个小技巧:如果想简化代码,你可以去掉函数体的{},利用箭头函数的隐式返回特性,这样连return都不用写:

const generatePackageJson = (name) => ` { "name": "${name}" } `;

(另外提个小细节:你生成的JSON里最后一个属性后面多了个逗号,这不符合JSON标准,解析时可能报错,建议去掉哦~)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:14:52