【发布时间】:2020-12-24 14:52:08
【问题描述】:
我正在试验 JavaScript 条件。在下面的代码中,为什么我的第一个条件没有返回 true 而第二个条件返回?
Javascript:
arr = [1,2,3];
if (arr[0] !== (1 || 2)){console.log('true')}
//undefined
if (arr[0] !== (2 || 1)){console.log('true')}
//true
【问题讨论】:
-
上述的预期结果是什么(假装它会这样工作)?
-
尝试运行
console.log(1 || 2)和console.log(2 || 1)并查看它们记录的值。 -
"在条件语句中使用逻辑 OR 运算符时的一个常见错误是尝试声明您正在检查其值的变量一次,然后给出可能返回 true 的值列表,分隔通过 || (OR) 运算符”developer.mozilla.org/en-US/docs/Learn/JavaScript/…
-
理解这一点的更简单方法是知道在任何复合
if语句中,每个条件都必须是可以独立评估的完整条件。(1 || 2)不是一个完整的条件,在这种情况下将始终评估为true。 -
看起来您实际上是在尝试执行以下操作:
[1,2].indexOf(arr[0])<0。
标签: javascript conditional-statements