权耀扬
2016-06-13 09:51
<script type="text/javascript">
var newArray = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var strSplit = newArray.split(";");
for (var i = 0; i < strSplit.length; i++) {
var sum = 0;
sum = sum + parseInt(strSplit[i].substr(strSplit[i].indexOf(":")+1));
document.write(sum + "<br />")
}
</script>
-------------------------------
var sum = 0;
这个声明放在for循环里面和放在for循环外面的结果完全不同 请高手给讲讲有什么区别 谢谢
放在里面,属于局部变量,只有调用循环的时候才用到,并且每次执行都是从初始位置(初始值)执行,而放在外面,它属于全局变量,被整个函数体使用,所以它的值不会改变,除非这个变量被包含在其他的循环体内部执行。
你的想法很。。。
(strSplit[i].substr(strSplit[i].indexOf(":")+1))是什麽?
放在里面的每循环一次之后sum的值又变为0了,它作用域为函数内,而如果你放在外面的话,它是全局变量,每循环一次它的值就会被修改。
你放在循环里面那么每次循环都会重新赋值,它会清除上次循环所得到的值,所以根本不能得到想要的叠加的效果。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题