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

为什么把sum定义在函数内跟定义在函数外的运行结果不一样,求解答!谢谢

为什么把sum定义在函数内跟定义在函数外的运行结果不一样,求解答!谢谢

正在回答

2 回答

举个栗子

比如想要循环一个数组,求出数组中所有元素之合

定义在函数外:

var arr = [1,2,3,4];
var sum = 0;// 定义在函数外
for(var i = 0;i<arr.length;i++){
  // 因为sum在外部定义的,所以只管往sum上累加值即可
  sum += arr[i]
}

定义在函数内:

var arr = [1,2,3,4];
for(var i = 0;i<arr.length;i++){
  // 每次进循环之后,都重新定义了一个sum变量,其值是0,所以上一次累加的元素值会被冲(覆盖)掉
  var sum = 0;
  // 累加元素值
  sum += arr[i]
}


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

qq_我爱喝大果粒_0 提问者

谢谢你的解答,明白啦
2015-11-27 回复 有任何疑惑可以回复我~
#2

慕男婶 回复 qq_我爱喝大果粒_0 提问者

应该是循环内 和 循环外,而不是 函数内 和 函数外,打错字儿了。
2015-11-27 回复 有任何疑惑可以回复我~

应该是局部变量和全局变量的原因吧,大神勿喷!

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

举报

0/150
提交
取消

为什么把sum定义在函数内跟定义在函数外的运行结果不一样,求解答!谢谢

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