Логические операторы используются вместе с ключевыми словами: for , if , while , do while и могут принимать только одно из двух значение true/false . Всего в JavaScript существуют три логических оператора: || (ИЛИ), && (И) и ! (НЕ). Рассмотрим на примерах, работу каждого из них.

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

Логические операторы используются вместе с ключевыми словами: for, if, while, do while и могут принимать только одно из двух значение true/false. Всего в JavaScript существуют три логических оператора: || (ИЛИ), && (И) и ! (НЕ). Рассмотрим на примерах, работу каждого из них.

Оператор || (ИЛИ)

Из двух булевых значение true/false оператор || (ИЛИ) всегда выберет истинное true. Из двух ложных значений, выберет ложное false. Проверим так ли это, выводя результаты в консоль.

console.log(true || true ); // true
console.log(true || false ); // true
console.log(false || true ); // true
console.log(false || false ); // false


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

Обычно в программировании оператор || (ИЛИ) используется вместе с условным оператором if для проверки истины у заданного условия. Но в JavaScript, применение данного оператора выходит за рамки традиционного. Даже если значение не является логическим типом данных, то оно все равно таковым станет для вычислительных целей. Например число 1 преобразуется в true, а 0, в false. В примере ниже, левая и правая часть идентичны.

if (1 || 0) // if (true || false)

Как сработает оператор || (ИЛИ), если по условию, в переменной должно оказаться одно из трех значений? Оператор вернет первое или последнее истинное значение.

let result = value 1 || value 2 || value 3;

На практике, оператор используется для вывода дефолтного значения, если с сервера не поступило никаких данных в переменную. И чтобы не оставлять просто пустое место на странице, проставляется дефолтное значение.

let value = object.property ||'default';

Оператор && (И)

Оператор && (И) вернет true, если оба значения истинны, во всех остальных случаях вернется false. Условие выполнится, если оба значения будут истиной.

console.log( true && true ); // true
console.log( false && true ); // false
console.log( true && false ); // false
console.log( false && false ); // false


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

Оператор && (И) вернет первое ложное значение или последнее, если ничего не найдено.

let result = value 1 && value 2 && value 3;
console.log( 1 && 0 ); // 0
console.log( 1 && 2 ); // 2
console.log( null && ); // null


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

Оператор ! (НЕ)

Оператор ! (НЕ) принимает один аргумент, который приводит к логическому типу true/false и возвращает противоположное значение. Здесь 0 преобразовался в false и вернул его антипод: true. Благодаря этой способности, двойное отрицание может использоваться, как приведение к логическому типу.

console.log( !true ); // false
console.log( !0 ); // true

Приоритет && (И), выше чем у || (ИЛИ), а приоритет у ! (НЕ) самый высокий среди всех логических операторов. В математическом выражении, он всегда будет выполняться в первую очередь. Для изменения порядка вычислений, необходимо переменные заключать в скобки. Так, как мы делаем в математике. Все три оператора используются при задании сложных условий. Любое значение в JavaScript может быть преобразовано в логическое true, за исключением следующих:

console.log(undefined); // false
console.log(null); // false
console.log(0); // false
console.log(NaN); // false
console.log(""); // false

Везде, где интерпретатор JavaScript ожидает получить логическое значение, любые значения автоматически будут преобразовываться в логические.