<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