JavaScript: Отрицание
Наряду с конъюнкцией (И) и дизъюнкцией (ИЛИ), часто используется операция «отрицание». Отрицание меняет логическое значение на противоположное. В программировании ему соответствует унарный оператор !
.
Если есть функция, проверяющая чётность числа, то с помощью отрицания можно выполнить проверку нечётности:
const isEven = (number) => number % 2 === 0;
isEven(10); // true
!isEven(10); // false
То есть мы просто добавили !
слева от вызова функции и получили обратное действие.
Отрицание — мощный инструмент, который позволяет лаконично выражать задуманные правила в коде без необходимости писать новые функции.
А что если написать так !!isEven(10)
? Внезапно, но код сработает. В логике двойное отрицание подобно отсутствию отрицания вообще.
isEven(10); // true
!isEven(10); // false
!!isEven(10); // true
Задание
Реализуйте функцию isNotLannisterSoldier()
, которая проверяет, что солдат — не Ланнистер. Функция принимает на вход 2 аргумента:
- Цвет доспехов (строка). Например, строку
red
, если доспехи красные. - Изображение на щите. Например, строку
lion
, если щит с изображением льва. Если щита нет, то будет переданnull
.
Вам доступна уже готовая функция isLannisterSoldier()
. Воспользуйтесь ей, чтобы не писать все логические условия заново.
Условия распознавания Ланнистера описаны в прошлом уроке.
Примеры вызова:
isNotLannisterSoldier('red', 'lion'); // false
isNotLannisterSoldier('blue', null); // true