javascript - 关于js函数递归return问题
本文介绍了javascript - 关于js函数递归return问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<script type="text/javascript">
var j;
function text(n){
if(n===1){
return 1;
}
return j= n*text(n-1);
}
text(4);
console.log(j);
</script>
如上代码,会弹出24;
var j;
function text(n){
if(n===1){
return 1;
}
j= n*text(n-1);
}
text(4);
console.log(j);
此代码 会弹出NaN
;
疑惑是为什么下面这代码会这样,递归必须return
么?
解决方案
很明显必须return啊,如果你不加return,在执行j=4*text(4-1)
的时候,text(4-1)
根本就不会有返回结果,所以相当于4*undefined
,所以最终的结果就是NaN
这篇关于javascript - 关于js函数递归return问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文