【发布时间】:2017-05-18 06:34:39
【问题描述】:
以下函数返回未定义。为什么?
function noReturn(arg) {
arg += " bar";
if (arg.length <= 100) noReturn(arg);
else {console.log(arg); return arg;}
}
noReturn("foo");
//logs in the console: "foo bar bar bar bar....", but returns undefined
编辑:哎呀...当然!谢谢你的回答,他们都很完美。
【问题讨论】:
-
我得到了如你所愿的答案,'function noReturn(arg) { arg += " bar"; if (arg.length@SalindaKrish 感谢您的关注!但以下所有答案都是正确的。在您的回答中,您犯了与我相同的错误,您也忘记输入
return noReturn(arg)。如果没有这个return表达式,代码将无法工作。但是感谢您的帮助!不,我的朋友在那种情况下没有必要放一个 return 语句,它会再次递归调用该函数..它会在到达 else 语句时返回,这就是你得到预期结果的方式放...说实话,它对我有用'function noReturn(arg) { arg += "bar"; if (arg.length@SalindaKrish 不,我的朋友,你错了;)你犯了和我一样的错误。尝试删除“console.log(arg)”命令。您可能被控制台记录arg欺骗了。证明:运行此语句:console.log(noReturn('sal')+'foo')。这将输出字符串"undefinedfoo",而不是sal bar bar bar....
标签: javascript function recursion return-value