Задать вопрос
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 Простой Комментировать
Решения вопроса 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, дальше проверять не пришлось
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы