问答详情
源自:7-10 提取字符串substring()

新手for循环问题

<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循环外面的结果完全不同 请高手给讲讲有什么区别 谢谢

提问者:权耀扬 2016-06-13 09:51

个回答

  • ljty317330656
    2016-06-13 10:47:42
    已采纳

    放在里面,属于局部变量,只有调用循环的时候才用到,并且每次执行都是从初始位置(初始值)执行,而放在外面,它属于全局变量,被整个函数体使用,所以它的值不会改变,除非这个变量被包含在其他的循环体内部执行。

  • 鱼鱼鱼iii
    2016-08-15 14:58:24

    你的想法很。。。

  • caikie
    2016-06-14 17:40:37

    (strSplit[i].substr(strSplit[i].indexOf(":")+1))是什麽?

  • 2016蓟
    2016-06-13 10:29:53

    放在里面的每循环一次之后sum的值又变为0了,它作用域为函数内,而如果你放在外面的话,它是全局变量,每循环一次它的值就会被修改。

  • dopt
    2016-06-13 10:29:44

    你放在循环里面那么每次循环都会重新赋值,它会清除上次循环所得到的值,所以根本不能得到想要的叠加的效果。