ИЛИ в троичном операторе, используя && - PullRequest
0 голосов
/ 06 июля 2018

Используя традиционное выражение if, я могу сделать это:

if(a===0 || b===0) {console.log('aloha amigo')};

Но когда я пытаюсь сделать что-то то же самое с троичным оператором, как это:

a===0 || b===0 && console.log('aloha amigo')

Я просто получаю сообщения об ошибках ||.

Согласно этому ответу: Приоритет: логический или против троичного оператора , мы можем сделать это, используя

condition1 || condition2 ? do if true : do if false

(Извините, я не уверен, как вызывать символы ? : в этом случае), но я не уверен, как запустить его, используя && (Это означает, что запускать код можно только в том случае, если возвращено true ).

Я создал кодовую ручку, чтобы легко ее проверить. Вот весь код:

var a = 0;
var b = 1;

a===0 || b===0 ? console.log('Works here') : console.log('And here');

a===0 || b===0 && console.log('Doesn\'t work here');

a===0 && console.log('The && works for a single test');

Вот ссылка

1 Ответ

0 голосов
/ 06 июля 2018

Просто возьмите круглые скобки, чтобы исключить приоритет оператора && над ||

(a === 0 || b === 0) && console.log('aloha amigo')

Без скобок вы получите (теперь с возможностью показать приоритет) другой результат.

a === 0 || (b === 0 && console.log('aloha amigo'))
^^^^^^^                                             first evaluation
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  second evaluation
...