为了账号安全,请及时绑定邮箱和手机立即绑定

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

正在回答

5 回答

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

0 回复 有任何疑惑可以回复我~
#1

权耀扬 提问者

非常感谢!
2016-06-13 回复 有任何疑惑可以回复我~

你的想法很。。。

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

新手for循环问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信