这段学习代码我有疑问的地方哪里出问题了呢?先谢谢大家

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系好安全带,准备启航</title>

<script type="text/javascript">

  //通过javascript的日期对象来得到当前的日期,并输出。
  var Udate = new Date();
  var weekend = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
  var mynum = Udate.getDay();
  document.write(Udate+"</br>");
  document.write(Udate.getFullYear()+"年"+Udate.getMonth()+1+"月"+Udate.getDate()+"日"+weekend[mynum]+"</br>");
  
  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
  var arrsco = scoreStr.split(";");//这里不先写这步为什么不可以实现?///
 //document.write(scoreStr.split(";")+"</br>");
 //document.write(arrsco.length)
 var i=0; 
 var arrnum = new Array();////////-----
 //document.write(scoreStr.length+"</br>");//////
 for(i;i<=arrsco.length;i++){
     arrnum[i]=arrsco[i].slice(3,5); 
     document.write(arrnum[i]+"</br>");
     sum+ = parseInt(arrnum[i]);//这里为什么不执行呢?程序有这个则就不能正常运行了的
     //document.write("平均成绩:"+"</br>")
     }
     //document.write(arrnum.length+"</br>")
     //document.write("平均成绩:"+sum/(arrsco.length+1)+"</br>")//这里求平均,但是没有执行。这句为什么只有放到for循环里才起作用?for循环完了应该就执行了啊?

  //从数组中将成绩撮出来,然后求和取整,并输出。
</script>
</head>
<body>
</body>
</html>

我的想法是

arrnum[i]=arrsco[i].slice(3,5)

按下表以此赋值,然后

parseInt 转换成书之后,sum求和并且平均,但是for循环里的sum+那里不能正确执行,还有就是document.write("平均成绩:"+sum/(arrsco.length+1)+"</br>")  这句为什么只有放到for循环里才能执行,放在for后面为什么就不能执行,for循环执行完了以后不是自动向下执行吗?起高人指教,本人是爱学习的小白一枚~~~~~



uwenhao2008
浏览 1311回答 3
3回答

上帝遗弃之仔

(⊙v⊙)没懂你意思,我再解释一下吧。var sum = 0;这条语句是var sum; sum= 0;这两条语句的复合语句。第一行是变量声明,第二行才是给sum赋初值。如果不赋初值(只有第一行),没有第二行的话sum的值会是undefined(空的)。其实JavaScript中可以没有第一条声明语句浏览器也能正确解析,但是好的编程习惯先声明后使用。上面这个例子中sum = 0;这句话是一定不可省略的。

上帝遗弃之仔

第二个问题找了好久= =,25行for循环第二个循环条件 i<=arrsco.length,因为i是从0开始的,你这样写就多循环了一次,正确的写法应该是 i<arrsco.length。32行也有个小错误,arrsco.length获取到的就是数组中元素的个数,不需要再加1的。还有个小问题sum使用之前最好声明一下你对数组还没理解好,再复习一下吧~<!DOCTYPE  HTML> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>系好安全带,准备启航</title>   <script type="text/javascript">     //通过javascript的日期对象来得到当前的日期,并输出。   var Udate = new Date();   var weekend = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]   var mynum = Udate.getDay();   document.write(Udate+"</br>");   document.write(Udate.getFullYear()+"年"+Udate.getMonth()+1+"月"+Udate.getDate()+"日"+weekend[mynum]+"</br>");       //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦   var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";   var arrsco = scoreStr.split(";");//这里不先写这步为什么不可以实现?///  //document.write(scoreStr.split(";")+"</br>");  //document.write(arrsco.length)  var i;  var sum=0;  var arrnum = new Array();////////-----  //document.write(scoreStr.length+"</br>");//////  for(i=0;i<arrsco.length;i++){      arrnum[i]=arrsco[i].slice(3,5);       document.write(arrnum[i]+"</br>");      sum += parseInt(arrnum[i]);//这里为什么不执行呢?程序有这个则就不能正常运行了的      //document.write("平均成绩:"+"</br>")      }      document.write("总成绩:"+ sum +"<br />");      //document.write(arrnum.length+"</br>")      document.write("平均成绩:"+Math.round(sum/arrsco.length)+"</br>")//这里求平均,但是没有执行。这句为什么只有放到for循环里才起作用?for循环完了应该就执行了啊?     //从数组中将成绩撮出来,然后求和取整,并输出。 </script> </head> <body> </body> </html>

上帝遗弃之仔

28行,你本意是"+=",中间多了个空格导致错误的- -||
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript