| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators/Logical_OR | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.
El operador lgico OR (||) (disyuncin lgica) es verdadero para un conjunto de operandos si y solo si uno o ms de sus operandos es verdadero. Es normalmente usado con valores booleanos (lgicos). 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.
const a = 3;
const b = -2;
console.log(a > 0 || b > 0);
// Expected output: true
x || y
Si x puede ser convertida a true, retorna x; en caso contrario, retorna y.
Si un valor puede ser convertido a true, el valor es conocido como truthy. Si un valor puede ser convertido a false, el valor es conocido como falsy.
Ejemplos de expresiones que pueden ser convertidas a false son:
null;NaN;0;"" o '' o ``);undefined.Aunque el operador || puede ser usado con operandos que no son valores booleanos, an puede ser considerado un operador booleano ya que su valor de retorno siempre puede ser convertido a un booleano primitivo.
Para explcitamente convertir su valor de retorno (o cualquier expresin en general) al correspondiente valor booleano, se debe usar un doble (operador lgico NOT) o el contructor del objeto Boolean.
La expresin lgica OR es evaluada de izquierda a derecha, es posible una evaluacin de cortocircuito (short-circuit) usando la siguiente regla:
(alguna expresin truthy) || expresin es evaluada por cortocircuito (short-circuit) a la expresin truthy.
Cortocircuito (Short-circuit) significa que la parte de la expresin de arriba no es evaluada, por lo que ningn efecto secundario resultante de ella es realizado (por ejemplo, si la expresin es una llamada a una funcin, la llamada nunca es realizada). Esto ocurre porque el valor del operador ya est determinado despus de la evaluacin 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 funcin,
// despus imprime `true` (que es el valor resultante del operador)
Las siguientes expresiones pueden parecer equivalentes, pero no lo son, porque el operador && es ejecutado antes del operador || (vase precedencia de operadores).
true || false && false; // retorna `true`, porque `&&` es ejecutado primero
(true || false) && false; // retorna `false`, porque la agrupacin tiene la ms alta precedencia
El siguiente cdigo muestra ejemplos del operador lgico 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 varObject
Nota:
Si se usa este operador para proveer un valor por defecto a alguna variable, se debe ser consciente que cualquier valor falsy no ser usado. Si solo se necesita filtrar null o undefined, considere usar el operador de coalescencia nula (??).
La siguiente operacin involucra booleanos:
bCondition1 && bCondition2
es siempre igual a:
!(!bCondition1 || !bCondition2)
La siguiente operacin involucra booleanos:
bCondition1 || bCondition2
es siempre igual a:
!(!bCondition1 && !bCondition2)
Ya que las expresiones lgicas son evaluadas de izquierda a derecha, siempre es posible remover los parntesis de una expresin compleja siguiendo las siguientes reglas.
La siguiente operacin compuesta involucra booleanos:
bCondition1 && (bCondition2 || bCondition3)
es siempre igual a:
!(!bCondition1 || !bCondition2 && !bCondition3)
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # prod-LogicalORExpression |
This page was last modified on 29 may 2026 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |