Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的IF条件会影响全局变量使函数成为循环_Javascript - Fatal编程技术网

Javascript 为什么我的IF条件会影响全局变量使函数成为循环

Javascript 为什么我的IF条件会影响全局变量使函数成为循环,javascript,Javascript,我正在浏览一些代码,看到了有点像这样的一个,我想我遗漏了一些基本的东西,但我不明白为什么(如果是这样的话)+i会影响全局i。在JS中,所有变量默认都是全局的,除非在其他范围内指定var关键字。因此,这意味着i(通过执行++i)的增量将影响var i=0。如果希望它不影响全局变量,请在bumBum函数中指定var i 关于++i ++i==12首先将i的平均增量i乘以1(与i=i+1;或i+=1;相同),然后将其与12进行比较 i++首先将其与12进行比较,然后再将其与增量i进行比较 i--与i-

我正在浏览一些代码,看到了有点像这样的一个,我想我遗漏了一些基本的东西,但我不明白为什么(如果是这样的话)+i会影响全局i。

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

关于
++i

++i==12
首先将i的平均增量i乘以1(与
i=i+1;
i+=1;
相同),然后将其与12进行比较

i++
首先将其与12进行比较,然后再将其与增量i进行比较

i--
i-=1


++i==12
不同于
i+1==12

这就是JavaScript的工作原理。这叫做结束。是的,您缺少一些基本信息。:-)你在问什么是
++i
?你说的全球i是什么意思?我在顶部只声明了一个。哦,我明白了,我只是个哑巴,不太明白增量是什么。还有什么变量会影响
++i
呢?在
bumBum
内部指定
var i
会导致无限循环,所以我怀疑OP是否想要这个。我只是不知道增量返回i+1值,我认为它与例如if((i+1)==12)相同,但不改变i。正如我所说,我只是个哑巴,以为我知道增量是什么。
 var i = 0
 function bumBum() {
  if (++i == 12){
    console.log("fin");
    i = 0;
  }else{
    console.log(i);
    bumBum();
  }

 }
 bumBum();