Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Условия

Условия позволяют программе выбирать, какой код выполнить. Без них программа всегда делала бы одно и то же, независимо от данных: показывала бы скидку всем подряд или пускала на сайт без пароля.

if

Код в фигурных скобках после if выполняется, только если условие в круглых скобках истинно. Код в фигурных скобках называют блоком:

const age = 20;
 
if (age >= 18) {
  console.log('Доступ разрешён'); // Доступ разрешён
}

Если условие ложно, блок пропускается, и программа идёт дальше. Код внутри блока принято сдвигать на два пробела — так видно, что он относится к условию.

else

Блок else («иначе») выполняется, когда условие ложно. Из двух блоков всегда срабатывает ровно один:

const age = 15;
 
if (age >= 18) {
  console.log('Доступ разрешён');
} else {
  console.log('Доступ запрещён'); // Доступ запрещён
}

else if

Когда вариантов больше двух, между if и else добавляют else if. Условия проверяются сверху вниз, и выполняется первый подходящий блок — остальные пропускаются:

const score = 75;
 
if (score >= 90) {
  console.log('Отлично');
} else if (score >= 70) {
  console.log('Хорошо'); // Хорошо
} else {
  console.log('Нужно подтянуть');
}

Порядок важен: если поставить проверку >= 70 первой, оценка 95 тоже получит «Хорошо».

Что считается истиной

В условии можно использовать не только сравнение, но и любое значение. Ложными считаются false, 0, пустая строка, null, undefined и NaN — их называют ложными (falsy). Всё остальное — истинные (truthy) значения:

const name = '';
 
if (name) {
  console.log(`Привет, ${name}!`);
} else {
  console.log('Имя не указано'); // Имя не указано
}

Так удобно проверять, что строка не пустая или что значение вообще задано.

Тернарный оператор

Тернарный оператор — короткая форма if-else для выбора одного из двух значений. Сначала пишут условие, после ? — значение для истины, после : — для лжи:

const age = 15;
const group = age >= 18 ? 'взрослый' : 'ребёнок';
 
console.log(group); // ребёнок

Он хорош для простых случаев, например чтобы выбрать слово для вывода. Сложную логику лучше оставить обычному if — так её легче читать.

Частая ошибка

Один знак = в условии — это присваивание, а не сравнение. Такое условие не проверяет значение, а меняет его, и блок выполняется почти всегда:

let role = 'гость';
 
if (role = 'админ') {
  console.log('Добро пожаловать в панель'); // Добро пожаловать в панель
}

Для сравнения всегда пишите три знака: role === 'админ'.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.