• Теория
  • Теория

Приведение к логическому типу данных

Нагулявшись, Кекс начал работу над программой «Можно ли выполнить проект?». А нам поручил тестировать эту программу и исправлять ошибки, если потребуется.

Программа рассматривает несколько условий и выдаёт экспертное заключение. Вначале она проверяет, находится ли кто-то из разработчиков в отпуске. Информация об этом хранится в переменной onVacation:

if (onVacation) {
  console.log('Проект нельзя выполнить');
} else {
  console.log('Проект можно выполнить');
}

Сложность в том, что информацию об отпусках мы получаем от менеджеров в абсолютно разных форматах. Кто-то сразу скажет, что разработчики в отпуске, то есть передаст true, кто-то не поймёт вопроса и скажет, сколько разработчиков сейчас в отпуске, то есть отдаст нам какое-то число. А кто-то вообще промолчит, если никого в отпуске нет, то есть мы получим пустую строку.

Здесь сравнение значений нам не поможет, потому что данные могут прийти в любом виде. Но есть и хорошая новость — в условии все значения приводятся к логическому типу. Поэтому мы можем использовать в качестве условий любые значения: числа, строки, true и false, а также переменные, которые содержат такие данные.

Главное — понимать, как эти значения приводятся к логическому типу. Все числа, кроме нуля, — true, при этом 0 — false. Все строки, кроме пустой строки, — true, пустая строка '' — false. Можно сказать, что значения, которые как бы ничего в себе не содержат (как 0, пустая строка '' или undefined), приводятся к false, а все остальные приводятся к true.

if ('какая-то строка') {
// Непустая строка приводится к true
// Условие выполнится
};

if ('') {
// Пустая строка приводится к false
// Условие не выполнится
};

if (123) {
// Число приводится к true
// Условие выполнится
};

if (0) {
// 0 приводится к false
// Условие не выполнится
};

Теперь мы можем заняться новой программой Кекса. Нужно убедиться, что она работает с разными типами данных. Для этого будем менять значение переменной onVacation.

Строка '0' не считается пустой, поэтому приводится к true.

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Условия» тренажёра «Программирование на JavaScript — основы языка» можно после регистрации и оформления подписки.