问答详情
源自:7-23 编程练习

为什么 var sum=0;可以,var sum;结果却不一样?

  var scoreStr = "小明:87;小花:81";

 

 var arr=scoreStr.split(';');

 var sum=0;   //定义var sum;  为什么达不到效果??



  //从数组中将成绩撮出来,然后求和取整,并输出。

  

  for(var i=0;i<arr.length;i++){

      var index=arr[i].indexOf(':')+1;

      sum+=parseInt(arr[i].substr(index,2));

  }

  var pj=Math.floor(sum/arr.length);

  document.write('平均分是'+pj);


提问者:_十年 2016-07-29 18:30

个回答

  • GREY_PIG1233708179
    2016-08-06 17:30:11

    我初步看了一下,简单来理解的话,我是这么想的sum是一个变量。当你没有给sum赋值时,它后面出现的这一步是不能识别的,sum+=parseInt(arr[i].substr(index,2));这里相当于sum=sum+parseInt(arr[i].substr(index,2));在这里之前它一直都是sum字符,在相加

  • 水里有条鱼
    2016-07-29 19:27:34

    var sum; sum为undefined

    javascript 有种叫做类型转换,相加操作的时候,会把值的类型进行转换
    比如1+undefine   undefine就会被转化为数字 NaN   1+NaN 返回 NAN
    如果 undefine+“123” 那么undefine就会被转化为字符串 “undefine” 输出结果就是undefine123