Условные выражения в программировании используются для сравнения значений и возвращают булево значение true (истина) или false (ложь).
Существуют два основных типа условных операций: операции сравнения и логические операции.
Пример с операторами равенства и тождественности:
const income = 100;
const strIncome = "100";
const resultEqual = income == strIncome; // true
const resultStrictEqual = income === strIncome; // false
console.log(resultEqual, resultStrictEqual);
В данном примере resultEqual будет равен true, так как значения income и strIncome равны, но resultStrictEqual будет равен false, поскольку также учитывается тип данных.
Логические операции в программировании обычно применяются к значениям типа Boolean (true или false) и возвращают также булево значение. Они часто используются для проверки условий.
В JavaScript существуют следующие логические операции:
Логическое И (&&)Возвращает true, если оба операнда истинны, иначе возвращает false.
console.log(true && true); // true
console.log(true && false); // false
console.log(false && false); // false
Пример использования для проверки двух условий:
const money = 1000;
const age = 21;
const access1 = age > 18 && money > 100; // true
const access2 = age > 18 && money > 1000; // false
Логическое ИЛИ (||)Возвращает true, если хотя бы один из операндов истинен, иначе возвращает false.
console.log(true || true); // true
console.log(true || false); // true
console.log(false || false); // false
Пример использования для проверки условий:
const money = 1000;
const age = 21;
const access1 = age > 18 || money > 1000; // true
const access2 = age > 22 || money > 1000; // true
Логическое отрицание (!)Возвращает true, если операнд ложен, и наоборот.
console.log(!true); // false
console.log(!false); // true
Пример использования:
const isAlive = true;
const isDead = !isAlive; // false
Логические операции могут принимать значения разных типов, не только Boolean. JavaScript автоматически преобразует определенные значения к типу Boolean.
Примеры преобразования:
console.log(false && "Tom"); // false
console.log("Tom" && null); // null
console.log(true && "Tom"); // Tom
console.log(false || "Tom"); // Tom
console.log("Tom" || null); // Tom
console.log(true || "Tom"); // true
console.log(!null); // true
console.log(!0); // true
console.log(!""); // true
console.log(!"Tom"); // false
Условные конструкцииЛогические операции могут быть удобными при построении условных конструкций.
Пример:
const age = 22;
age <= 17 && console.log("Вам меньше 18 лет. Доступ запрещен.");
age > 17 && console.log("Вам больше 17 лет. Доступ разрешен.");
Использование || для того же:
const age = 12;
age <= 17 || console.log("Вам больше 17 лет. Доступ разрешен.");
age > 17 || console.log("Вам меньше 18 лет. Доступ запрещен.");
Такие конструкции позволяют выполнять определенные действия в зависимости от условий
В JavaScript существуют операции, которые сочетают в себе логические операции и присваивание.
&&= (ИЛИ-И)
Операция a &&= b аналогична выражению a = a && b. Она присваивает переменной a результат логического И между текущим значением a и значением b.
let x = true;
let y = false;
y &&= x;
console.log(y); // false
let c = false;
let d = true;
c &&= d;
console.log(c); // false
let a = true;
let b = true;
a &&= b;
console.log(a); // true
let e = false;
let f = false;
e &&= f;
console.log(e); // false
||= (ИЛИ)
Операция a ||= b аналогична выражению a = a || b. Она присваивает переменной a результат логического ИЛИ между текущим значением a и значением b.
let x = true;
let y = false;
y ||= x;
console.log(y); // true
let a = true;
let b = true;
a ||= b;
console.log(a); // true
let c = false;
let d = true;
c ||= d;
console.log(c); // true
let e = false;
let f = false;
e ||= f;
console.log(e); // false
Эти операции удобны, когда нужно обновить переменную в зависимости от логического условия, и они позволяют делать это более компактно.
Операции сравнения играют важную роль в создании условных выражений, которые управляют ходом выполнения программы. Особенно важно быть внимательным к выбору между операторами равенства и тождественности, чтобы избежать неожиданных результатов из-за автоматического приведения типов. Применение этих операторов с умом позволяет создавать эффективные и правильно функционирующие программы.