在这两段代码中为什么用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();
求大神解答呀?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你的代码应该是递归调用sum_num了,可以写成alert(total)。
递归调用sum_num
同意楼上。。
InternalError: too much recursion
... for(var i=0;i<arguments .length;i++){
total+=arguments[i];
} ...
使用递归去实现你期望的逻辑是错误的,你期望的是获取所有的参数的和,但是你的递归没有结束条件,所以导致死循环,但是就算是有结束条件,递归也不是这么用的