Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
Operador lógico OR (||)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
Eloperador lógico OR (||) (disyunción lógica) es verdadero para un conjunto de operandos si y solo si uno o más de sus operandos es verdadero. Es normalmente usado con valores booleanos (lógicos). Cuando es así, retorna un valor booleano. Sin embargo, el operador|| puede retornar el valor de uno de los operandos especificados, por lo que si este operador es usado con valores no booleanos, retornará un valor no booleano.
In this article
Pruébalo
const a = 3;const b = -2;console.log(a > 0 || b > 0);// Expected output: trueSintaxis
x || yDescripción
Six puede ser convertida atrue, retornax; en caso contrario, retornay.
Si un valor puede ser convertido atrue, el valor es conocido comotruthy. Si un valor puede ser convertido afalse, el valor es conocido comofalsy.
Ejemplos de expresiones que pueden ser convertidas afalse son:
null;NaN;0;- cadena vacía (
""o''o``); undefined.
Aunque el operador|| puede ser usado con operandos que no son valores booleanos, aún puede ser considerado un operador booleano ya que su valor de retorno siempre puede ser convertido a unbooleano primitivo.Para explícitamente convertir su valor de retorno (o cualquier expresión en general) al correspondiente valor booleano, se debe usar un doble (operador lógico NOT) o el contructor del objetoBoolean.
Evaluación de cortocircuito (Short-circuit)
La expresión lógica OR es evaluada de izquierda a derecha, es posible una evaluación de cortocircuito (short-circuit) usando la siguiente regla:
(alguna expresióntruthy) || expresión es evaluada por cortocircuito (short-circuit) a la expresióntruthy.
Cortocircuito (Short-circuit) significa que la parte de laexpresión de arribano es evaluada, por lo que ningún efecto secundario resultante de ella es realizado (por ejemplo, si laexpresión es una llamada a una función, la llamada nunca es realizada). Esto ocurre porque el valor del operador ya está determinado después de la evaluación del primer operando. Veamos un ejemplo:
function A() { console.log("llamada a A"); return false;}function B() { console.log("llamada a B"); return true;}console.log(B() || A());// Imprime "llamada a B" por la llamada a la función,// después imprime `true` (que es el valor resultante del operador)Precedencia de operadores
Las siguientes expresiones pueden parecer equivalentes, pero no lo son, porque el operador&& es ejecutado antes del operador|| (véaseprecedencia de operadores).
true || false && false; // retorna `true`, porque `&&` es ejecutado primero(true || false) && false; // retorna `false`, porque la agrupación tiene la más alta precedenciaEjemplos
>Usando el operador lógico OR
El siguiente código muestra ejemplos del operador lógico OR (||).
true || true; // t || t retorna `true`false || true; // f || t retorna `true`true || false; // t || f retorna `true`false || 3 === 4; // f || f retorna `false`"Cat" || "Dog"; // t || t retorna "Cat"false || "Cat"; // f || t retorna "Cat""Cat" || false; // t || f retorna "Cat""" || false; // f || f retorna `false`false || ""; // f || f retorna ""false || varObject; // f || objeto retorna varObjectNota:Si se usa este operador para proveer un valor por defecto a alguna variable, se debe ser consciente que cualquier valorfalsy no será usado. Si solo se necesita filtrarnull oundefined, considere usarel operador de coalescencia nula (??).
Reglas de conversión para booleanos
Convirtiendo el operador lógico AND al operador lógico OR
La siguiente operación involucra booleanos:
bCondition1 && bCondition2es siempre igual a:
!(!bCondition1 || !bCondition2)Convirtiendo el operador lógico OR al operador lógico AND
La siguiente operación involucra booleanos:
bCondition1 || bCondition2es siempre igual a:
!(!bCondition1 && !bCondition2)Removiendo paréntesis anidados
Ya que las expresiones lógicas son evaluadas de izquierda a derecha, siempre es posible remover los paréntesis de una expresión compleja siguiendo las siguientes reglas.
La siguiente operación compuesta involucra booleanos:
bCondition1 && (bCondition2 || bCondition3)es siempre igual a:
!(!bCondition1 || !bCondition2 && !bCondition3)Especificaciones
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # prod-LogicalORExpression> |