Несколько условий в JavaScript
- Зачем нужны несколько условий
- Оператор &&
- Оператор ||
- Проверка диапазона
- Комбинация условий
- Скобки в условиях
- Когда условие лучше упростить
- Итого
В реальном коде редко хватает одной проверки. Часто нужно проверить сразу несколько условий: возраст пользователя, роль, наличие данных, количество баллов или выбранный тариф.
let age = 20;
let hasTicket = true;
if (age >= 18 && hasTicket) {
console.log('Можно войти');
}
Здесь код выполнится только в том случае, если пользователь старше 18 лет и у него есть билет.
Зачем нужны несколько условий
Несколько условий нужны, когда одного сравнения недостаточно для принятия решения.
Например, для регистрации может быть нужно:
- чтобы пользователю было 18 лет или больше;
- чтобы он согласился с правилами;
- чтобы он указал email.
let age = 19;
let acceptedRules = true;
let email = 'user@example.com';
if (age >= 18 && acceptedRules && email) {
console.log('Регистрация доступна');
}
Все три части должны быть истинными. Если хотя бы одна проверка не пройдет, код внутри if не выполнится.
Оператор &&
Оператор && означает «и». Он используется, когда должны выполниться все условия.
let login = 'admin';
let password = '12345';
if (login === 'admin' && password === '12345') {
console.log('Вход выполнен');
}
Сообщение появится только если совпал и логин, и пароль.
Если пароль будет другим, условие станет ложным:
let login = 'admin';
let password = 'qwerty';
if (login === 'admin' && password === '12345') {
console.log('Вход выполнен');
} else {
console.log('Неверный логин или пароль');
}
Оператор ||
Оператор || означает «или». Он используется, когда достаточно выполнения хотя бы одного условия.
let role = 'moderator';
if (role === 'admin' || role === 'moderator') {
console.log('Доступ разрешен');
}
Доступ будет разрешен, если роль равна ‘admin’ или ‘moderator’.
Еще один пример:
let day = 'sunday';
if (day === 'saturday' || day === 'sunday') {
console.log('Выходной');
}
Проверка диапазона
Частая задача - проверить, что число находится в нужном диапазоне.
let scores = 75;
if (scores >= 60 && scores <= 100) {
console.log('Экзамен сдан');
}
Здесь значение должно быть больше или равно 60 и меньше или равно 100.
Такую запись можно читать почти как обычный текст: баллы не меньше 60 и не больше 100.
Комбинация условий
Операторы && и || можно использовать вместе.
let age = 17;
let hasParentPermission = true;
let hasTicket = true;
if ((age >= 18 || hasParentPermission) && hasTicket) {
console.log('Можно войти');
}
В этом примере пользователь может войти, если ему уже есть 18 лет или есть разрешение родителей. Но билет нужен в любом случае.
Без скобок такое условие было бы сложнее читать и легче понять неправильно.
Скобки в условиях
Скобки помогают явно показать, какие проверки должны выполняться вместе.
let isLoggedIn = true;
let role = 'admin';
if (isLoggedIn && (role === 'admin' || role === 'manager')) {
console.log('Можно открыть панель управления');
}
Сначала мы проверяем роль: подходит ‘admin’ или ‘manager’. Потом эта проверка объединяется с isLoggedIn.
Когда в условии есть и &&, и ||, скобки часто делают код понятнее даже тогда, когда JavaScript может разобраться без них.
Когда условие лучше упростить
Если условие становится длинным, его можно разбить на переменные с понятными именами.
let age = 20;
let acceptedRules = true;
let email = 'user@example.com';
let isAdult = age >= 18;
let hasEmail = Boolean(email);
if (isAdult && acceptedRules && hasEmail) {
console.log('Регистрация доступна');
}
Такой код обычно легче читать. По именам isAdult и hasEmail видно, что именно проверяется.
Итого
Несколько условий в JavaScript чаще всего записываются через && и ||. Оператор && нужен, когда должны выполниться все проверки. Оператор || нужен, когда достаточно хотя бы одной. Если условие получается сложным, используйте скобки или вынесите части проверки в переменные с понятными именами.