Lebed_Sergey
@Lebed_Sergey

Почему в console.log получаю разные результаты от операторов?

Подскажи пожалуйста в чем разница между двумя вариантами. В первом получается цифровое значение a во логические значения? (0 или true) Я думал что должно быть в обоих вариантах одинаково, числа или boolean. Заранее спасибо за ответ.

const hamburger = 3;
 const cola = 0;
 const fries = 1;

 console.log(hamburger === 3 && cola && fries);


const hummus = 0;
const shakshuka = 0;
const cola = 2;

console.log(hummus === 4 || shakshuka === 4 || cola === 2);
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Логические операторы && и || возвращают свои операнды:

1 && "2" // строка "2"
0 && "2" // число 0

0 || "2" // строка "2"
1 || false // число 1

Логическое И &&: для позитивного результата нужно, чтобы оба операнда были как-true. Проверка идёт слева направо. Как только наткнулись на как-false, возвращается он. Прошли всю цепочку и все по пути были как-true — вернули последний из них.

Логическое ИЛИ || даст позитивный результат, как только наткнётся хоть на один как-true. Его и вернёт. Ну или проверит все значения и если все как-false, вернёт последний из них.

1 && "2" && "habr" // вернёт "habr"
"1" && 0 && "qna" // 0

0 || false || "habr" === "qna" // false, результат ("habr" === "qna")
0 || 1 || 2 || true // 1, дальше проверять не пришлось
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект