JavaScript: Логический тип
Кроме арифметических операций со школы нам известны операции сравнения. Например, 5 > 4
. Это звучит как вопрос: «5 больше 4?». В данном случае ответ «да». В других случаях ответом может быть «нет», например, для 3 < 1
.
Операции сравнения не имеют привязки к числам. Сравнивать можно практически всё что угодно, например, строки. Каждый раз, когда мы входим на какой-то сайт, внутри происходит сравнение введенных логина и пароля с теми, какие есть в базе. И только если они есть, нас пускают внутрь (авторизируют).
Языки программирования адаптировали все математические операции сравнения практически в неизменном виде. Единственное серьезное отличие – операторы равенства и неравенства. В математике для этого используется обычное равно =
, но в программировании такое встречается не часто. Во многих языках символ =
используется для присваивания значений переменным, поэтому для сравнения взяли ==
или ===
.
Список операций сравнения в JavaScript:
<
меньше<=
меньше или равно>
больше>=
больше или равно===
равно!==
не равно
Небольшая ремарка: для равенства и неравенства также существуют операторы ==
и !=
, которые мы не будем использовать из-за потенциальной опасности. Мы поговорим об этом в будущих уроках.
Логическая операция типа 5 > 4
или password === text
— это выражение, и его результат — специальное значение true
(«истина») или false
(«ложь»). Это новый для нас тип данных — boolean. Он содержит всего лишь два этих значения.
const result = 5 > 4;
console.log(result); // => true
console.log('one' !== 'one'); // => false
Наряду со строками (string), целыми и рациональными числами (number), логический тип (boolean) — это один из примитивных типов данных в JavaScript.
Попробуем написать примитивную функцию, которая принимает на вход возраст ребенка и определяет, младенец ли он. Младенцами считаются дети до года:
const isInfant = (age) => age < 1;
Пользуемся тем фактом, что любая операция — это выражение, поэтому единственной строчкой функции пишем «вернуть то значение, которое получится в результате сравнения age < 1
».
В зависимости от пришедшего аргумента, сравнение будет либо истинным (true
), либо ложным (false
), и return
вернёт этот результат.
const isInfant = (age) => age < 1;
console.log(isInfant(3));
false
https://replit.com/@hexlet/js-basics-logic-bool-type
А теперь проверим ребенка, которому полгода:
console.log(isInfant(0.5));
true
Задание
Напишите функцию isPensioner()
, которая принимает один параметр — возраст человека, и проверяет, является ли он пенсионным. Пенсионером считается человек, достигший возраста 60 лет и больше.
Примеры вызова:
isPensioner(75); // true
isPensioner(18); // false
Упражнение не проходит проверку — что делать? 😶
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет 🤨
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя 🤔
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно 🙄
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
Определения
Логический тип (boolean) — тип данных с двумя возможными значениями: true (истина) и false (ложь).