为什么把sum定义在函数内跟定义在函数外的运行结果不一样,求解答!谢谢
举个栗子
比如想要循环一个数组,求出数组中所有元素之合
定义在函数外:
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]
}应该是局部变量和全局变量的原因吧,大神勿喷!