我认为我知道是什么以及如何使用||
(“逻辑或”),直到看到某些东西。
这就是我的理解:
if(conditional A || conditional B) {
// execute if either A or B is true
}
这是我不知道的,请你解释一下。
var inputs = document.querySelectorAll('input');
var inBetween = false;
for(var i = 0; i < 10; i++) {
if(i == 1 || i == 3) {
inBetween = !inBetween;
}
if(inBetween) {
inputs[i].checked = true;
}
}
<ul>
<li><input type="checkbox">ONE</li>
<li><input type="checkbox">TWO</li>
<li><input type="checkbox">THREE</li>
<li><input type="checkbox">FOUR</li>
<li><input type="checkbox">FIVE</li>
<li><input type="checkbox">SIX</li>
<li><input type="checkbox">SEVEN</li>
<li><input type="checkbox">EIGHT</li>
<li><input type="checkbox">NINE</li>
<li><input type="checkbox">TEN</li>
</ul>
我认为其中一个条件是真的,i == 1
或i == 3
,if块中的代码将被执行。但那么一堆投入怎么会涉及呢? (在这种情况下涉及1-3个)。
为什么涉及范围1-3,但不仅仅是1或1&amp; 3?
为什么在第一个!inBetween
子句中用true
替换if
不起作用?
很抱歉提出一个非常基本的问题。但我真的无法理解。
代码简化自Javascript30:https://www.youtube.com/watch?v=RIPYsKx1iiU
答案 0 :(得分:0)
就像Li357所说,||
运算符的逻辑就像你理解的那样。发生了什么事情inBetween
标志在true
后被切换为i == 1
。并且inBetween
标记在i == 3
之前不会被更改,从而触发您的第二个if
语句if(inBetween)
。
如果您在开始时切换标记inBetween
,如果每个循环都会解决您的问题。
for(var i = 0; i < 10; i++) {
inBetween = false;
if(i == 1 || i == 3) {
inBetween = true;
}
if(inBetween) {
inputs[i].checked = true;
}
}