var k = (function fun(x) {
if(x>0) {
x--;
console.log(x);
} else{
console.log("lala");
return "lala";
}
fun(x);
})(3)
console.trace(k);
打印的结果是
2
1
0
lala
undefined
(anonymous) @ test.html:47
为什么是undefined呢!???
var k = (function fun(x) {
if(x>0) {
x--;
console.log(x);
} else{
console.log("lala");
return "lala";
}
fun(x);
})(3)
console.trace(k);
打印的结果是
2
1
0
lala
undefined
(anonymous) @ test.html:47
为什么是undefined呢!???
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答873 阅读✓ 已解决
6 回答1k 阅读
k就是你的
fun(3)
,fun(3)
按照你代码,没有显式给出返回值,默认就是返回的undefined
。如果你要做递归的话,应该 给 里面的
fun(x)
加上 return 变成return fun(x);
如此就能让k为lala
了。