Главная страница » JavaScript » 49. Логические операторы
Логические операторы в JavaScript используются для выполнения логических операций над значениями и возвращения логического результата (значения true
или false
). Эти операторы позволяют создавать сложные логические выражения и управлять логикой программы. В этом уроке мы рассмотрим основные логические операторы и их применение.
Оператор И (&&
)
Оператор И возвращает true
, если оба операнда истинны, и false
в любом другом случае.
let a = true;
let b = false;
console.log(a && b); // false
console.log(a && true); // true
Пример использования: Проверка, выполнены ли оба условия.
let age = 25;
let hasID = true;
if (age >= 18 && hasID) {
console.log("Можно войти в клуб");
} else {
console.log("Доступ запрещён");
}
Оператор ИЛИ (||
)
Оператор ИЛИ возвращает true
, если хотя бы один из операндов истинен, и false
, если оба операнда ложны.
let x = true;
let y = false;
console.log(x || y); // true
console.log(false || false); // false
Пример использования: Проверка, выполнено ли хотя бы одно условие.
let isWeekend = false;
let isHoliday = true;
if (isWeekend || isHoliday) {
console.log("Можно отдохнуть");
} else {
console.log("Работаем");
}
Оператор НЕ (!
)
Оператор НЕ возвращает true
, если операнд ложен, и false
, если операнд истинен.
let isRainy = false;
console.log(!isRainy); // true
console.log(!true); // false
Пример использования: Инвертирование значения логического выражения.
let isLoggedIn = false;
if (!isLoggedIn) {
console.log("Пожалуйста, войдите в систему");
} else {
console.log("Добро пожаловать");
}
Оператор И (короткое замыкание)
Логические операторы &&
и ||
имеют особенности, которые называются коротким замыканием (short-circuit evaluation). Это значит, что если результат может быть однозначно определён после проверки одного из операндов, то второе значение не будет проверяться.
let result = true && false; // false, так как первый операнд true, проверяется второй
let anotherResult = false || "default"; // "default", так как первый операнд false, возвращается второй
Пример использования: Установка значений по умолчанию.
function greet(name) {
name = name || "Гость";
console.log("Привет, " + name);
}
greet("Иван"); // Привет, Иван
greet(); // Привет, Гость
Неверное использование операторов: Ошибки могут возникнуть, если операторы используются неправильно или в неверном контексте.
Пример ошибки:
let age = 30;
let hasPermission = false;
if (age >= 18 && hasPermission = true) { // Неправильно: оператор присвоения вместо сравнения
console.log("Доступ разрешён");
}
Исправление: Используйте оператор сравнения ===
вместо оператора присвоения =
.
if (age >= 18 && hasPermission === true) {
console.log("Доступ разрешён");
}
Пропуск условий: Иногда одно из условий может быть пропущено, что приведёт к неверному результату.
Пример ошибки:
let isWeekend = true;
let isHoliday = false;
if (isWeekend && isHoliday) {
console.log("Можно отдохнуть");
} else {
console.log("Работаем"); // Ошибка: не учтено условие isWeekend || isHoliday
}
Исправление: Убедитесь, что все необходимые условия учтены в логическом выражении.
Неопределённые значения: Использование логических операторов с неопределёнными или неинициализированными переменными может привести к неожиданным результатам.
Пример ошибки:
let isActive;
if (isActive && isActive) {
console.log("Активно");
} else {
console.log("Неактивно"); // Результат будет "Неактивно" из-за неопределённого значения isActive
}
Исправление: Инициализируйте переменные перед их использованием или используйте проверки на undefined
.
Логические операторы в JavaScript позволяют создавать сложные логические выражения и управлять логикой программы. Понимание и правильное использование этих операторов помогает создавать более точные и эффективные проверки условий. Будьте внимательны к распространённым ошибкам и обязательно проверяйте результат логических выражений.
Напишите функцию isEligible
, которая принимает два аргумента: age
и hasID
. Функция должна возвращать true
, если возраст больше или равен 18 и hasID
истинно. В противном случае функция должна возвращать false
.
function isEligible(age, hasID) {
return age >= 18 && hasID;
}
console.log(isEligible(20, true)); // true
console.log(isEligible(16, true)); // false
console.log(isEligible(20, false)); // false
Создайте функцию shouldBuyTicket
, которая принимает три аргумента: isWeekend
, isHoliday
и hasDiscount
. Функция должна возвращать true
, если хотя бы одно из условий выполнено: выходной день, праздник или есть скидка. В противном случае возвращать false
.
function shouldBuyTicket(isWeekend, isHoliday, hasDiscount) {
return isWeekend || isHoliday || hasDiscount;
}
console.log(shouldBuyTicket(true, false, false)); // true
console.log(shouldBuyTicket(false, true, false)); // true
console.log(shouldBuyTicket(false, false, true)); // true
console.log(shouldBuyTicket(false, false, false)); // false
Напишите функцию getUserStatus
, которая принимает аргумент isLoggedIn
. Если пользователь залогинен, функция должна возвращать строку "Welcome back!"
. Если не залогинен, функция должна возвращать строку "Please log in"
.
function getUserStatus(isLoggedIn) {
return isLoggedIn ? "Welcome back!" : "Please log in";
}
console.log(getUserStatus(true)); // "Welcome back!"
console.log(getUserStatus(false)); // "Please log in"
Создайте функцию validatePassword
, которая принимает аргумент password
. Функция должна вернуть true
, если длина пароля больше 8 символов и он содержит как буквы, так и цифры. В противном случае возвращает false
.
function validatePassword(password) {
return password.length > 8 && /[a-zA-Z]/.test(password) && /[0-9]/.test(password);
}
console.log(validatePassword("password123")); // true
console.log(validatePassword("short")); // false
console.log(validatePassword("noNumbers")); // false
Эти задания помогут вам лучше понять использование логических операторов в JavaScript и их применение в различных сценариях.
Наша цель и главная задача сделать качественное образование в вашем браузере
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024 Все права защищены. CodeFor.