Использовать оператор ИЛИ вместо if

сделайте капризного робота, который в confirm спрашивает "шопинг?", а в случае отказа - выводить alert "ты - бяка".

var answer = confirm("Shopping?");
answer && alert(":))") || answer && alert("You are a caca!!!");

Логический оператор ИЛИ выводит первое значение, равное true, а в моем случае идет дальше. Почему?


Ответы (2 шт):

Автор решения: Igor

Потому что alert ничего не возвращает.

var answer = confirm("Shopping?");
answer && !alert(":))") || alert("You are a caca!!!");

→ Ссылка
Автор решения: Grundy

Логический оператор ИЛИ выводит первое значение, равное true

В данном случае, первым операндом будет выражение

answer && alert(":))")

и так как alert возвращает undefined, значение выражения приводится к false, из-за этого идет вычисление второго аргумента

→ Ссылка