用var变量理解一些东西

问题描述 投票:-1回答:1

在这段代码中,我试着找出最大数字在数组中的次数:

 x = [1, 2, 2, 4, 2, 4];

for(let i = 0; i <= x.length; i++) {
 let temp = x[0];
 var count=1;
 if(x[i] > temp) {
    temp=x[i];
    continue;
 } else if(x[i] == temp) {
    count++;
 }    
}

console.log(count);

当我使用这样的代码时,计数为1,意味着它不会改变,但是:

 x = [1,2,2,4,2,4];
 var count=1;
 for(let i = 0; i <= x.length; i++) {
  let temp = x[0];      
  if(x[i] > temp){
    temp = x[i];
    continue;
   } else if(x[i] == temp) {
    count++;
   }    
}

console.log(count);

当我将var计数放在循环之外时,它可以工作并显示2,但为什么呢?是不是var成为一个全局变量,并且不受像for循环范围那样的影响?

javascript for-loop var
1个回答
2
投票

如果var count=1;在循环内部,则每次循环重新开始时count被设置(即重置)为1,每次循环渲染时产生相同的计数。这就是为什么你必须把它放在循环之前。

© www.soinside.com 2019 - 2024. All rights reserved.