This question already has answers here:
What is the scope of variables in JavaScript?
                                
                                    (25个答案)
                                
                        
                3个月前关闭。
            
        

这是关于我为练习setInterval功能所做的练习的两个问题


从下面的代码中,我试图在1000毫秒内打印出自加10的变量,但是当我运行它时,在浏览器的控制台中,它只显示10次相同的单词“ num”,我该如何计算出来 ?




$(function() {
  var timmer;
  GoCount();

  function GoCount() {
    timmer = setInterval(function() {
      var num = 0;
      num += 10;
      console.log(num);
    }, 1000);
  }
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>






第二个问题是setInterval和for循环有什么区别

最佳答案

正如@CarstenLøvboAndersen的评论一样,您应该将num设置为全局变量,以便能够保留先前的值。



$(function() {
  var timmer;
  var num = 0;
  GoCount();

  function GoCount() {
    timmer = setInterval(function() {
      num += 10;
      console.log(num);
    }, 1000);
  }
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

10-04 22:45
查看更多