【问题标题】:Understanding something with var variable用 var 变量理解一些东西
【发布时间】:2018-09-01 21:48:26
【问题描述】:

您好,在这段代码中,我尝试查找最大数在数组中的次数:

 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 不是变成了全局变量,不受像 let 这样的 for 循环作用域的影响吗?

【问题讨论】:

标签: javascript for-loop var


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    相关资源
    最近更新 更多