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

在一个函数中使用全局声明的变量是否会阻止在另一个函数中使用该变量?

在一个函数中使用全局声明的变量是否会阻止在另一个函数中使用该变量?

慕姐4208626 2022-08-04 16:48:47
我试图理解为什么我的代码的一个版本有效,而另一个版本不起作用。我已经全局定义了var数,所以我想如果我运行函数sumArray(),那么它会传入元素,但它总是返回0。只有当我再次定义它更接近函数sumArray()时,它才正确计算。将变量编号用于 printReverse() 函数是否会禁止在 sumArray() 中再次使用它?如果您注释掉,那么您将在控制台中看到它返回0。var numbers = [2, 2, 3];var numbers = [1, 2, 3];var result = 0;function printReverse() {  var reversed = [];  while (numbers.length) {    //push the element that's removed/popped from the array into the reversed variable    reversed.push(numbers.pop());  }  //stop the function   return reversed;}//print the results of the function printReverse()console.log(printReverse());var numbers = [2, 2, 3];function sumArray() {  //pass each element from the array into the function  numbers.forEach(function(value) {    //calculate the sum of var result + the value passed through and store the sum in var result    result += value;  });  //return and print the sum  return result;}//print the results of the function sumArray()console.log(sumArray());
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

(当您注释掉var numbers = [2,2,3])

该方法修改原始数组,因此当您到达 sumArray 函数时,您没有剩余的元素。pop

相反,您可以使用反向方法

numbers.reverse(); //this can completely replace the printReverse function


查看完整回答
反对 回复 2022-08-04
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信