Javascript - 逻辑或 ||
Javascript - Logical Or ||
我以为我知道什么是 ||
以及如何使用 ||
("Logical Or"),直到看到一些东西。
这是我的理解:
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&3?
为什么在第一个 if
子句中用 true
替换 !inBetween
不起作用?
抱歉问了一个非常非常基本的问题。但是我真的想不通。
代码从 Javascript30 简化而来:https://www.youtube.com/watch?v=RIPYsKx1iiU
就像李357说的,||
运算符的逻辑就是你理解的那样。正在发生的事情是 inBetween
标志在 i == 1
之后切换为 true
。 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;
}
}
我以为我知道什么是 ||
以及如何使用 ||
("Logical Or"),直到看到一些东西。
这是我的理解:
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&3?
为什么在第一个 if
子句中用 true
替换 !inBetween
不起作用?
抱歉问了一个非常非常基本的问题。但是我真的想不通。
代码从 Javascript30 简化而来:https://www.youtube.com/watch?v=RIPYsKx1iiU
就像李357说的,||
运算符的逻辑就是你理解的那样。正在发生的事情是 inBetween
标志在 i == 1
之后切换为 true
。 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;
}
}