От автора: в JavaScript логические операторы чаще всего используются там, где для принятия решения используются несколько выражений, и на основе каждого принимается определенное условие. Выражения могут принимать значения операторов not true и or. Часто их ассоциируют с условиями if.
Логическое И: &&
Сравнивает два выражения и возвращает true или false. Пример:
1 2 3 4 5 | var x = 5; var y = "Monday"; if (x > 3 && y == "Monday") { console.log("Success!"); } |
Значения сравниваются слева направо; чтобы условие вернуло «Success!» оба выражения должны быть true. Если оба значения false, то мы никогда не увидим в консоли надпись «Success!». Таблица истинности:

Бесплатный курс «Full-Stack практика»
Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS
Получить курсКонечно, может быть более двух условий. С ростом сложности общего выражения рекомендуется использовать скобки:
1 2 3 | if ((x > 3) && (y == "Monday") && (year < 2016)) { ... код ... } |
Распространенная ошибка использовать один амперсанд в логическом И, это неправильно. Тот же самый принцип и с оператором равенства. Важно запомнить, что вы сравниваете значения, поэтому необходимо использовать двойные символы.
Логическое ИЛИ: ||
В сравнении по ИЛИ если любое выражение true, то условие выполнится:

Бесплатный курс «Full-Stack практика»
Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS
Получить курс 1 2 3 4 5 | var a = 16; var b = "Slpadash"; if (a > 3 || b == "Exemplary") { console.log("Success!"); } |
В примере выше второе выражение никогда не будет true, а первое будет. Так как мы использовали оператор ИЛИ, то код в условии выполнится.
Логическое НЕ: !
В выражениях сравнения работает по принципу «нет»:
1 2 3 4 5 | var c = true; var d = 1979; if (c == true && d !== 1980) { console.log("Correct"); } |
В примере выше в консоли напечатается слово «Correct». Сравнение читается «если переменная C true и переменная d не равна 1980…». Оператор ! можно использовать без дополнительных операторов:
1 2 3 4 5 | var c = false; var d = 1979; if (!c || d <> 1980) { console.log("Correct"); } |
Выражение читается «Если переменная С false или больше или меньше 1980».
Заключение
Логические операторы это ключ к созданию комплексных условий в JavaScript, их можно использовать в различных шаблонах программирования, в том числе и в тернарных операторах. О тернарных операторах мы поговорим в следующей статье.
Источник: http://thenewcode.com/
Редакция: Команда webformyself.

Бесплатный курс «Full-Stack практика»
Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS
Получить курс
Хотите узнать, что необходимо для создания сайта?
Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!
Смотреть
Почему !==
а не !=
В данном случае разницы нет. Но могут быть случаи, когда нужен именно оператор строгого (не)равенства. Это нужно, когда важно не только проверяемое значение, но и тип. Например, если мы хотим проверить на истинность (true) или ложность (false) выражение, тогда оператор сравнения в таком варианте произведет преобразование типа и условие вернет true:
console.log( 0 == false );
Если же будет использован оператор тождественно равно:
console.log( 0 === false );
тогда дополнительно будут проверены типы, которые в данном случае не идентичны. Первые — это число, второй — булев. Поэтому в данном случае выражение вернет false.