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

发布于 2022-08-31 20:53:46 字数 518 浏览 8 评论 0

图片描述

/* 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();

求大神解答呀?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

妄想挽回 2022-09-07 20:53:46

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

很快妥协 2022-09-07 20:53:46

递归调用sum_num

甜柠檬 2022-09-07 20:53:46

同意楼上。。

javascriptalert(sum_num(total)); // 这里岂不是递归了,改为alert(total)就OK了
極樂鬼 2022-09-07 20:53:46

InternalError: too much recursion

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文