Логический тип

Кроме арифметических операций, со школы нам известны операции сравнения. Например, 5 > 4. Это звучит как вопрос: «5 больше 4?». В данном случае ответ «да». В других случаях ответом может быть «нет», например, для 3 < 1.

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

Языки программирования адаптировали все математические операции сравнения практически в неизменном виде. Единственное серьезное отличие – операторы равенства и неравенства. В математике для этого используется обычное равно =, но в программировании такое встречается не часто. Во многих языках символ = используется для присваивания значений переменным, поэтому для сравнения взяли == или ===.

Список операций сравнения в JavaScript:

  • < меньше
  • <= меньше или равно
  • > больше
  • >= больше или равно
  • === равно
  • !== не равно

Небольшая ремарка: для равенства и неравенства также существуют операторы == и !=, которые мы не будем использовать из-за потенциальной опасности. Мы поговорим об этом в будущих уроках.

Логическая операция типа 5 > 4 или password === text — это выражение, и его результат — специальное значение true («истина») или false («ложь»). Это новый для нас тип данных — bool. Он содержит всего лишь два этих значения.

const result = 5 > 4;
console.log(result); // => true
console.log('one' !== 'one'); // => false

Наряду со строками (string) и целыми и рациональными числами, тип bool (булеан) — это один из примитивных типов данных в JavaScript.


Попробуем написать примитивную функцию, которая принимает на вход возраст ребенка и определяет, младенец ли он. Младенцами считаются дети до года:

const isInfant = (age) => age < 1;

Пользуемся тем фактом, что любая операция — это выражение, поэтому единственной строчкой функции пишем «вернуть то значение, которое получится в результате сравнения age < 1».

В зависимости от пришедшего аргумента, сравнение будет либо истинным (true), либо ложным (false), и return вернёт этот результат.

const isInfant = (age) => age < 1;

console.log(isInfant(3));
false

А теперь проверим ребенка, которому полгода:

console.log(isInfant(0.5));
true

Задание

Напишите функцию isPensioner(), которая принимает один параметр — возраст человека, и проверяет, является ли он пенсионным. Пенсионером считается человек, достигший возраста 60 лет и больше.

Примеры вызова:

isPensioner(75); // true
isPensioner(18); // false

Определения

  • Логический тип (bool) — тип данных с двумя возможными значениями: true (истина) и false (ложь).


Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном cообществе
Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.