Operadores lógicos en JavaScript
Son operadores que nos permeten realizar operaciones booleanas
En JavaScript, hay tres operadores lógicos: AND (&&
), OR (||
) y NOT (!
).
Operador lógico AND &&
El operador lógico AND se indica con &&
. Devuelve true
si ambos operandos son true
, de lo contrario, devuelve false
.
true && true // → true
true && false // → false
false && false // → false
Un ejemplo en la vida real sería preguntar. ¿Están todas las luces encendidas? Se comprueba cada luz y si todas están encendidas (
true
), entonces la respuesta estrue
. Si alguna luz está apagada (false
), entonces la respuesta esfalse
.
Operador lógico OR ||
El operador lógico OR se indica con ||
y devuelve true
cuando cualquiera de los valores que conecta es true
.
true || true // → true
true || false // → true
false || false // → false
Un ejemplo en la vida real sería preguntar. ¿Hay alguna luz encendida? Se comprueba cada luz y si alguna está encendida (
true
), entonces la respuesta estrue
. Sólo si todas las luces están apagadas (false
), entonces la respuesta esfalse
.
Operador lógico NOT !
El operador lógico NOT se indica con !
e invierte el valor de un valor booleano. Se pone delante del valor que queremos invertir.
!true // → false
!false // → true
Un ejemplo en la vida real sería pulsar el interruptor de la luz. Si la luz está encendida (
true
), entonces pulsando el interruptor la apagamos (false
). Si la luz está apagada (false
), entonces pulsando el interruptor la encendemos (true
).
Combinando operadores lógicos, aritméticos y de comparación
Los operadores lógicos y los operadores de comparación se pueden combinar para crear expresiones más complejas. Por ejemplo, podemos preguntar si un número está entre dos valores.
2 < 3 && 3 < 4 // → true
En este caso, la expresión se evalúa como
true
porque2 < 3
estrue
y3 < 4
estrue
. Si cualquiera de las dos expresiones fuerafalse
, entonces la expresión seríafalse
.
También puedes usar paréntesis para agrupar operaciones y usar operadores lógicos y aritméticos.
(2 + 2) < 3 && (10 < (8 * 2)) // → false
Igualmente, es importante que sepas que las operaciones aritméticas tienen precedencia sobre las operaciones de comparación.
2 + 2 < 3 && 10 < 8 * 2
// Primero se hacen las operaciones aritméticas:
// → 4 < 3 && 10 < 16
// Ahora las comparaciones:
// → false && true
// Finalmente:
// → false