首页 > 在这两段代码中为什么用return才能实现?用alert却不能呢?

在这两段代码中为什么用return才能实现?用alert却不能呢?

/* function sum_num(){  
    var total = 0;  
    for(var i=0;i<arguments .length;i++){  
        total+=arguments[i];  
    }  
    return total;  
}  

alert(sum_num(2,34,45,56,56)); */

 function sum_num(){  
    var total = 0;  
    for(var i=0;i<arguments .length;i++){  
        total+=arguments[i];  
    }  
     alert(sum_num(total)); 
}  

sum_num();

求大神解答呀?


递归调用sum_num


InternalError: too much recursion

... for(var i=0;i<arguments .length;i++){
total+=arguments[i];
} ...

使用递归去实现你期望的逻辑是错误的,你期望的是获取所有的参数的和,但是你的递归没有结束条件,所以导致死循环,但是就算是有结束条件,递归也不是这么用的


你的代码应该是递归调用sum_num了,可以写成alert(total)。


同意楼上。。

javascriptalert(sum_num(total)); // 这里岂不是递归了,改为alert(total)就OK了
【热门文章】
【热门文章】