Javascript 为什么我的IF条件会影响全局变量使函数成为循环
我正在浏览一些代码,看到了有点像这样的一个,我想我遗漏了一些基本的东西,但我不明白为什么(如果是这样的话)+i会影响全局i。在JS中,所有变量默认都是全局的,除非在其他范围内指定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-
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();