fle*_*len 0 javascript recursion function return-value
以下函数返回undefined.为什么?
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
Run Code Online (Sandbox Code Playgroud)
编辑:哎...当然!谢谢你的回答,所有这些都很完美.
该函数不返回任何内容,因为您已将其定义为不返回长度<= 100的输入的任何内容.
function noReturn(arg) {
arg += " bar";
if (arg.length <= 100) noReturn(arg);
// ^---- no return statement
else {console.log(arg); return arg;}
}
Run Code Online (Sandbox Code Playgroud)
如果希望递归的结果传播回来,则必须添加该return语句.