JavaScript: Предикаты
Вспомним функцию 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.