Uso de operadores lógicos en Javascript

En Javascript, como en cualquier lenguaje de programación, existe un tipo de datos lógicos o booleanos que engloba a solo dos valores: true (verdadero) y false (falso), que se transforman en 1 y 0 si deben convertirse en tipos numéricos.

Pues los operadores lógicos son los operadores usados por Javascript para trabajar con los datos booleanos o lógicos. Vas a encontrar tres clases de operadores

  • NOT
  • AND
  • OR

Este tipo de datos son el tipo de resultado al aplicar operadores relacionales, los usados para realizar comparaciones entre valores y/o expresiones.

Las operaciones realizadas con lo operadores lógicos son análogas a las operaciones a nivel de bit, pero en este caso solo trabajan con valores booleanos, no con las representaciones binarias de datos numéricos.

La siguiente lista detalla todos los operadores lógicos que puedes usar en Javascript, junto con un pequeño ejemplo de uso

Negación: !
Es el operador mas simple de todos, se usa para invertir un valor de true a false o viceversa. Se usa con valores o con expresiones lógicas, invirtiendo su resultado. Es un operador con la mínima precedencia, por eso siempre es conveniente poner paréntesis a las expresiones que queramos negar con este operador. También se pude usar junto a los operadores de igualdad (==) e identidad (===) para invertirlos.

var cierto = true;

var falso = !cierto;

console.log ( 5 >4); //true

console.log (! (5>4)); //false

Si se comparan números con cadenas, JavaScript intenta convertir internamente los datos. En los operadores relacionales (>, <, >=, <=) intenta convertir los datos en tipo número. Para los operadores de igualdad (== !=) intenta convertir los tipos de datos a cadena, número y booleano. Los operadores de identidad (===, !==) no realizan conversión de tipo.
AND lógico &&
Este operador es similar al AND a nivel de bit pero opera con valores booleanos. Se utiliza para concatenar comparaciones, es decir, para comprobar varias condiciones . El resultado sólo será true si todas las comparaciones o los perandos lo son. Es omo un producto si uno solo de los factores es 0 (false) el resultado es 0 (false)

var op1 = 2, op2 = 50, op3 = 25;

var comp;

comp = (op1 > op2) && (op1 < op3);       //false

comp = (op1 < op2) && (op1 < op3);       //true

OR lógico ||
Como el anterior, sirve para realizar comparaciones compuestas y solo devolverá false cuando todas las comparaciones los sean. Es decir basta que una comparación sea true para que devuelva el valor false. Es como una suma de ceros y unos, si uno solo de los sumandos es 1 (true) el resultado es 1(true)

var op1 = 2, op2 = 50, op3 = 25;

var comp;

comp = (op1 > op2) && (op1 < op3);   /*comp toma el valor true */

Resumen

Los operadores lógicos realizan operaciones con valores booleanos  o lógicos (true, false)

Los valores lógicos (true, false) se pueden invertir (negar) con el operador ! (signo de exclamación cerrada).

De la misma manera se pueden invertir los resultados de las comparaciones, pues son valores lógicos o booleanos.

 AND logico
El operador && (and logico) solo devuelve true si ambos valores son true. Es como un producto (true es 1, false es 0)
 OR logico
El operador || (or logico) devuelve true si al menos un operando es true. Es como una suma(true es 1, false es 0)