Ресурсы: Алгебра логики Приоритет операторов Задачи
Результатом логических операций является
булевое значение (true или false).
В данном примере оба утверждения должны быть правдивы, поскольку используется оператор "
и", если это так, то в совокупности вернётся
true и выполнится какое-то действие
Код
const hamburger = true, fries = true;
if (hamburger && fries) {
console.log('Я сыт!');
}
А вот в этом примере в совокупности результатом логической операции будет
false, поскольку 0 в логическом контексте всегда вернёт
false, а раз одно из условий не выполнено, то и в общем вернется
false Код
const hamburger = 5, // это вернет true
fries = 0; // это вернет false
if (hamburger && fries) {
console.log('Я сыт!');
}
Цитата
В JavaScript всегда будут false следующие сущности:
0, undefined, null, NaN, '' пустая строка
Всё остальное будет true.
Зная вышенаписанное, можно условия записывать так:
Код
const hamburger = 2,
fries = 1; // вернёт true
if (hamburger === 3 && fries) {
console.log('Все сыты!');
} else {
console.log('Мы уходим');
}
В примере ниже в консоли мы уже увидим не булевое значение, а конкретные данные (в данном случае 0, поскольку оператор "
и" возвращает первое ложное значение, то и выводится значение переменной
cola)
Код
const hamburger = 3, // это true
fries = 1, // это true
cola = 0; // это false
console.log(hamburger === 3 && cola && fries); // 0
Оператор "
и" всегда возвращает первое ложное значение, если оно есть, и далее код уже не идёт. Если все аргументы верны, код возвращает значение последнего аргумента.
Код
console.log(1 && 5); // 5
console.log(null && 0); // null
Оператор "
или" возвращает последнее ложное значение, если все аргументы ложны. Если все аргументы истина, то возвращается первый истинный аргумент.
Код
console.log(0 || null || undefined); // undefined
Комбинации операторов
Разберём на примере:
Код
const hamburger = 3,
fries = 3,
cola = 0,
nuggets = 2;
if (hamburger === 3 && cola === 2 || fries === 3 && nuggets) {
console.log('Все довольны');
} else {
console.log('Мы уходим');
}
Примеры задач на операторы
Код
console.log( NaN || 2 || undefined ); // 2
console.log( NaN && 2 && undefined ); // NaN
console.log( 1 && 2 && 3 ); // 3
console.log( !1 && 2 || !3 ); // false
console.log( 25 || null && !3 ); // 25
console.log( NaN || null || !3 || undefined || 5); // 5
console.log( NaN || null && !3 && undefined || 5); // 5
console.log( 5 === 5 && 3 > 1 || 5); // true
Выполнится ли условие?
Код
const hamburger = 3;
const fries = 3;
const cola = 0;
const nuggets = 2;
if (hamburger === 3 && cola || fries === 3 && nuggets) {
console.log('Done!');
} // Done!
Добавлять комментарии могут только зарегистрированные пользователи.