我的IF的条件如何影响全局变量使函数成为循环

时间:2015-12-10 19:04:05

标签: javascript

 var i = 0
 function bumBum() {
  if (++i == 12){
    console.log("fin");
    i = 0;
  }else{
    console.log(i);
    bumBum();
  }

 }
 bumBum();

正在浏览一些代码并看到有点像这个,我想我错过了一些基本但我无法理解为什么(如果是这样)++我影响全球我

1 个答案:

答案 0 :(得分:0)

在JS中,默认情况下所有变量都是全局变量,除非您在其他范围内指定var关键字。这意味着i的增量(通过执行++i)会影响var i = 0。如果您希望它不影响全局变量,请在var i函数内指定bumBum

关于++i

++i == 12意味着首先将i增加1(与i = i+1;i += 1;相同),然后将其与12进行比较

i++意味着先将它与12比较,然后再增加i

i--i -= 1

相同

++i == 12i + 1 == 12

不同