Степан Asked:2020-03-21 03:59:30 +0000 UTC2020-03-21 03:59:30 +0000 UTC 2020-03-21 03:59:30 +0000 UTC 为什么这个程序给出 true 并且 if 被执行?[复制] 772 if(arr[i] == 1 || 2)其中 i != 1 或 2。在我看来,如果我们比较 3 == 1 || 2 将是假的,但它仍然产生真。任务是比较数组元素,如果数组元素 i != 1 或 2,则会显示一些消息 javascript 1 个回答 Voted Best Answer user176262 2020-03-21T04:03:26Z2020-03-21T04:03:26Z 正如您可能认为的那样,这 -if(arr[i] == 1 || 2)不会arr[i]先与1然后与比较。2 它相当于if ((arr[i] == 1) || (2))。尽管arr[i]它可能等于也可能不等于 1,但逻辑的第二个操作数ИЛИ- 2- 始终true是布尔意义上的。这意味着整个表达式将true独立于第一个操作数的值。 if (arr[i] == 1 || arr[i] == 2) console.log(3 == 1 || 2); console.log((3 == 1) || (2)); console.log(!!(3 == 1 || 2));
正如您可能认为的那样,这 -
if(arr[i] == 1 || 2)不会arr[i]先与1然后与比较。2它相当于
if ((arr[i] == 1) || (2))。尽管arr[i]它可能等于也可能不等于 1,但逻辑的第二个操作数ИЛИ-2- 始终true是布尔意义上的。这意味着整个表达式将true独立于第一个操作数的值。