Javascript-逻辑或||

Javascript-逻辑或||,javascript,operator-keyword,Javascript,Operator Keyword,我想我知道什么是以及如何使用|(“逻辑Or”),直到看到一些东西 这就是我的理解: if(conditional A || conditional B) { // execute if either A or B is true } 这是我不知道的,请你解释一下 var inputs=document.querySelectorAll('input'); 中间变量=假; 对于(变量i=0;i

我想我知道什么是以及如何使用
|
(“逻辑Or”),直到看到一些东西

这就是我的理解:

if(conditional A || conditional B) {
    // execute if either A or B is true
}
这是我不知道的,请你解释一下

var inputs=document.querySelectorAll('input');
中间变量=假;
对于(变量i=0;i<10;i++){
如果(i==1 | | i==3){
中间=!中间;
}
如果(中间){
输入[i]。选中=真;
}
}
  • 一个
  • 两个

就像Li357所说的那样,
|
操作符的逻辑与您所理解的一样。发生的情况是,在
i==1
之后,
inBetween
标志被切换到
true
。而
inBetween
标志在
i==3
之前不会更改,从而触发第二个
if
语句
if(inBetween)

如果在开始时在两个循环之间切换标志
,则每个循环都会解决问题

for(var i = 0; i < 10; i++) {
    inBetween = false;
    if(i == 1 || i == 3) {
        inBetween = true;
    }
    if(inBetween) {
        inputs[i].checked = true;
    }
}
for(变量i=0;i<10;i++){
中间=假;
如果(i==1 | | i==3){
中间=真;
}
如果(中间){
输入[i]。选中=真;
}
}

因为您在中间使用相同的
变量。一旦i为1,中间的
变为真。它保持为真,直到
inBetween
为3时变为假。只需重置
inBetween=false第二个if块内。谢谢Li357,Hassan ImamSorry,还有一个问题,基于上述代码的“结构”,我将值从布尔值更改为字符串,但结果不一样。在匹配了if和| |的第二部分之后,var的值永远改变了,这与上面的值不同,请您再次帮助?var myVar='a';for(设i=0;i