Operadores Lógicos en JavaScript
En JavaScript, existen cuatro operadores lógicos principales: || (O), && (Y), ! (NO), y ?? (Fusión de nulos). En este artículo nos enfocaremos en los primeros tres, dejando el operador ?? para una discusión posterior.
Operador OR «||»
El operador OR se representa con dos barras verticales:
result = a || b;
En la programación tradicional, el OR lógico se utiliza principalmente con valores booleanos. En JavaScript, este operador es más versátil. Si alguno de los operandos es true, el resultado será true; de lo contrario, será false.
Por ejemplo:
alert(true || true); // true
alert(false || true); // true
alert(true || false); // true
alert(false || false); // false
En JavaScript, los operandos no booleanos son convertidos automáticamente a booleanos para la evaluación. Por ejemplo, el número 1 se considera true y el número 0 se considera false:
if (1 || 0) {
alert("Se evaluó como true.");
}
let firstName = "";
let lastName = "";
let nickName = "SuperCoder";
alert(firstName || lastName || nickName || "Anónimo"); // SuperCoder
Este ejemplo muestra cómo OR puede seleccionar el primer valor no vacío de una lista de variables opcionales.
Operador AND «&&»
El operador AND se representa con dos ampersands:
result = a && b;
En la programación clásica, AND devuelve true solo si ambos operandos son true. En JavaScript, cualquier tipo de operando es válido. Si todos los operandos son true, devuelve el último valor; de lo contrario, retorna el primer valor false encontrado.
Por ejemplo:
alert(true && true); // true
alert(false && true); // false
alert(true && false); // false
alert(false && false); // false
El operador AND puede usarse para evaluar múltiples condiciones en una sola expresión:
let hour = 12;
let minute = 30;
if (hour === 12 && minute === 30) {
alert("Son las 12:30.");
}
Similar al operador OR, AND también cortocircuita la evaluación, deteniéndose tan pronto como encuentra el primer valor false:
if (1 && 0) {
alert("No se ejecutará porque es false.");
}
Operador NOT «!»
El operador NOT se representa con un signo de exclamación:
result = !value;
Este operador convierte su operando a un valor booleano y luego invierte ese valor. Es decir, convierte true en false y false en true:
alert(!true); // false
alert(!0); // true
A veces, dos signos de exclamación se utilizan para convertir un valor a su forma booleana explícitamente:
alert(!!"cadena no vacía"); // true
alert(!!null); // false
Conclusión
Los operadores lógicos en JavaScript son herramientas poderosas para manejar la lógica condicional de manera eficiente y legible. Cada operador tiene su propio propósito y puede utilizarse para evaluar expresiones complejas o condiciones simples de manera concisa.