首页 新闻 搜索 专区 学院

arguments的一个小问题!

0
[已解决问题] 解决于 2017-10-11 22:03
   <script  type="text/javascript">

      function company() {


            var sum;//总工资
            var rshu;//人数
            rshu = arguments.length;

            for (var i = 0; i < arguments.length; i++) {
                sum += arguments[i];
            }
            document.write("总人数"+rshu+",总工资是:"+sum+"");
        }
       
        function add() {
            var sum;

            var rshu;//人数
            rshu = arguments.length.toString();
            for (var count = 0, length = arguments.length; count < length; count++) {
                sum += arguments[count];
            }
            document.write("总人数" + rshu + ",总工资是:" + sum + "");
        };
      
    </script>


    <h2>A公司:<script>add(2, 200, 2, 2, 200);</script></h2>
      <h2>b公司:<script>company(100, 200, 100, 100);</script></h2>

然后就是总工资变为了NaN,就是问一下怎么让他求和?

敲代码挣彩礼的主页 敲代码挣彩礼 | 小虾三级 | 园豆:1473
提问于:2017-10-11 15:22
< >
分享
最佳答案
0

佩服佩服。。  

undefined + number = NaN  没毛病。。

function add() { 
//这里加个 sum=0就好了 如果你不加的话 那么 js会自动将你定义的变量赋值为undefined
var sum = 0; var rshu;

rshu = arguments.length.toString(); for (var count = 0, length = arguments.length; count < length; count++) { sum += arguments[count]; } document.write("总人数" + rshu + ",总工资是:" + sum + ""); };
奖励园豆:5
blurs | 小虾三级 |园豆:667 | 2017-10-11 16:26

嗯  知道了 ,  为什么我定义的其他变量未负值怎么没事?

敲代码挣彩礼 | 园豆:1473 (小虾三级) | 2017-10-11 17:00

@爱婷婷的小明:  你定义的rshu 因为  arguments是环境变量 一定会存在的 length肯定会有值而且一定会是数字 你之后执行了

var rshu;

rshu = arguments.length.toString(); 实际上就是

var rshu = arguments.length.toString();的效果

这么一看。。。 不就是赋值了么。。

blurs | 园豆:667 (小虾三级) | 2017-10-11 17:04

@blurs: 谢了;

敲代码挣彩礼 | 园豆:1473 (小虾三级) | 2017-10-11 22:02
其他回答(1)
0

定义sum 为0 !不定义会找不到他

syf_kevin | 园豆:18 (初学一级) | 2017-10-11 17:03

嗯  收到;

支持(0) 反对(0) 敲代码挣彩礼 | 园豆:1473 (小虾三级) | 2017-10-11 22:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册