Предикаты

Вспомним функцию isInfant из прошлого урока:

const isInfant = (age) => age < 1;
console.log(isInfant(3));
false

Подобные функции называют предикатами. Функции-предикаты (или функции-вопросы) отвечают на какой-то вопрос и всегда (без исключений!) возвращают либо true либо false.

Предикаты во всех языках принято именовать особым образом для простоты анализа. В JavaScript предикаты, как правило, начинаются с префикса is, has или can, но не ограничены этими словами. Примеры:

  • isInfant — «младенец ли?»
  • hasChildren — «есть ли дети?»
  • isEmpty — «пустой ли?»
  • hasErrors — «есть ли ошибки?»

Функция может считаться предикатом только если она возвращает bool.


Давайте напишем еще одну функцию-предикат. Она принимает строку и проверяет, является ли она словом 'Castle':

const isCastle = (type) => type === 'Castle';

console.log(isCastle('Sea'));
false

Задание

Напишите функцию isMister, которая принимает строку и проверяет, является ли она словом 'Mister'.

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

isMister('Mister'); // true
isMister('Miss');   // false

Советы

Определения

  • Предикат — выражение, отвечающее на вопрос «да» или «нет» с помощью типа bool.


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

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