Логические операторы в JavaScript

Лекция про логические операторы

Логические выражения на языке JavaScript могут быть объединены, для использования в качестве проверки, например паролей. Возьмём к примеру проверку пароля при регистрации. Если мы хотим чтобы пароль был не менее 8 символов и более 20 то функция выполняющая такую проверку будет такой

const isStrongPassword = (password) => {
    const length = password.length;
        return length > 8 && length < 20;
};
                              
isStrongPassword('qwerty'); // false
isStrongPassword('qwerty1234'); // true
isStrongPassword('zxcvbnmasdfghjkqwertyui'); // false

                        

&& - означает «И». Все выражение считается истинным только в том случае, когда истинен каждый операнд — и слева и справа. Иными словами, && означает «и то, и другое».

Кроме &&, часто используется оператор || — «ИЛИ». Он означает «или то, или другое, или оба». Операторов И и ИЛИ может быть сколько угодно и их можно комбинировать в любом количестве и любой последовательности.

Приоритет операторов И и ИЛИ ниже чем приоритет операторов сравнения, поэтому при комбинировании лучше их ставить в скобки. Вот улучшенный пример для проверки пароля

const isStrongPassword = (password) => {
    const length = password.length;

    return length > 8 && (hasSpecialChars(password) || hasCapitalChars(password));
};

                        

Ниже таблица истинности поведения оператора && И

(a, true) && (b, true) // ==> true
(a, true) && (b, false) // ==> false
(a, false) && (b, true) // ==> false
(a, false) && (b, false) // ==> false

                        

И таблица истинности оператора || ИЛИ

(a, true) || (b, true) // ==> true
(a, true) || (b, false) // ==> true
(a, false) || (b, true) // ==> true
(a, false) || (b, false) // ==> false

Оператор отрицания

Помимо операторов && И и || ИЛИ в JavaScript встречается оператор отрицания. Он позволяет менять логическое значение на противоположное. Обозначается знаком восклицания !

Например если есть функция, которая проверяет четность числа, то с помощью унарного отрицания можно проверить обратное

const isEven = (number) => number % 2 === 0;

isEven(10);  // true
!isEven(10); // false

                    

В этом примере просто добавив знак унарного отрицания перед вызовом функции мы получили обратное действие.

Данный оператор позволяет писать задуманные правила в коде без необходимости добавления новых функций.

Главная Обо мне Работы
Обратная связь