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