_十年
2016-07-29 18:30
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);
我初步看了一下,简单来理解的话,我是这么想的sum是一个变量。当你没有给sum赋值时,它后面出现的这一步是不能识别的,sum+=parseInt(arr[i].substr(index,2));这里相当于sum=sum+parseInt(arr[i].substr(index,2));在这里之前它一直都是sum字符,在相加
var sum; sum为undefined
javascript 有种叫做类型转换,相加操作的时候,会把值的类型进行转换
比如1+undefine undefine就会被转化为数字 NaN 1+NaN 返回 NAN
如果 undefine+“123” 那么undefine就会被转化为字符串 “undefine” 输出结果就是undefine123
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题