为什么把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] }
应该是局部变量和全局变量的原因吧,大神勿喷!