- Теория
- Теория
Приведение к логическому типу данных
Нагулявшись, Кекс начал работу над программой «Можно ли выполнить проект?». А нам поручил тестировать эту программу и исправлять ошибки, если потребуется.
Программа рассматривает несколько условий и выдаёт экспертное заключение. Вначале она проверяет, находится ли кто-то из разработчиков в отпуске. Информация об этом хранится в переменной 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.
Хотите применять объектно-ориентированный подход и современные возможности ECMAScript для разработки веб-приложений? Хотите уметь применяеть паттерны проектирования? Записывайтесь на профессиональный курс «JavaScript. Архитектура клиентских приложений». Цена 12 000 ₽.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.