El operador lógico OR (o ) en JavaScript es un operador que devuelve el lado si el lado izquierdo es , pero de lo contrario, el valor predeterminado y devuelve el lado derecho. || izquierdo verdadero Esto significa que se puede usar para probar ambas declaraciones lógicas y también para devolver el operando del lado derecho en caso de que el izquierdo sea . falsy Echemos un vistazo a cómo funciona. ¿Qué significan realmente Verdadero y Falso en JavaScript? Antes de continuar, primero entendamos qué significa . Puede parecer una declaración vaga, pero en realidad tiene una definición muy específica. Los siguientes valores son en JavaScript: falsy falsy false o o 0 -0 0n cadena vacía, es decir, any "" null undefined NaN De manera similar, simplemente significa cualquier cosa que . truthy no sea falsy Dado que puede significar y , a veces puede ser una mala elección para establecer valores predeterminados. falsy 0 "" Por ejemplo, en algunos escenarios, si su valor realmente es y quiere mostrarlo, no podrá con el operador. Para estos casos, es mejor considerar el operador coalescente nulo. 0 || ¿Cómo funciona el operador lógico OR en JavaScript? Como se mencionó, el El operador tiene dos funciones principales en JavaScript. Más comúnmente, se encuentra en declaraciones lógicas , donde devuelve verdadero si uno o más de sus operandos es , pero también se usa para devolver el primer valor si es , o de forma predeterminada en el lado derecho. operando si no. || if..else truthy truthy el funciona de ambas maneras porque en realidad devuelve un valor. || Uso de lógica OR con lógica Probablemente habrás visto más comúnmente utilizado en declaraciones lógicas como y . En estos casos, normalmente estamos probando una declaración lógica, por lo que devolverá si uno o más de sus operandos es . || if else || true truthy Lo que está sucediendo debajo es el El operador devuelve un valor, que luego la declaración convierte en o . || if true false let x = 100; // This returns true, since both of these statements are correct. if(x > 5 || x > 10) { // ... } // Since both "1" and "2" can be converted to true, this also returns true in this context. if("1" || "2") { // ... } // Since both "" and null are falsy, they are converted to false, and as such this returns false. if("" || null) { // ... } Esta es una de las principales formas en que usará en su código, pero también se usa con frecuencia para devolver valores en función de cuán o sean. || truthy falsy Valores devueltos Veamos otro ejemplo ahora, fuera de las declaraciones lógicas. Como se mencionó, devuelve su lado izquierdo si es , pero de lo contrario devuelve su lado derecho. || truthy Eso suena un poco confuso, así que veamos algunos ejemplos. // Is set to 1, since the first operand is falsy let x = false || 1; // Is set to hello, since "hello" is truthy let y = "hello" || true; En el ejemplo anterior, dado que tiene su lado izquierdo establecido en , se convierte en 1. De manera similar, en , dado que no es , el valor de es . Esta funcionalidad es diferente de su aplicación en declaraciones lógicas y declaraciones , pero puede ser útil en muchas situaciones. x false x y "hello" falsy y "hello" if..else Curiosamente, incluso si el último elemento proporcionado es , JavaScript aún lo devolverá. falsy Por ejemplo: // Is set to null since false is falsy let x = false || null; // Is set to false since 0 is falsy let y = 0 || false; Encadenamiento del operador OR Es posible encadenar el operador en JavaScript. Al encadenar declaraciones lógicas (en cláusulas ...else), la declaración devolverá verdadero si algún elemento encadenado es : || if..else truthy // This works since both "1" and true are truthy if("1" || true || false) { // ... console.log('this works') } // This doesn't work since all values are falsy if(false || null || undefined) { console.log('this does not work'); } Cuando usamos encadenado fuera de declaraciones lógicas, utilizará el primer valor encontrado, o por defecto al valor final. Por ejemplo, a continuación, es igual a , es y es . Si te preguntas por qué es , es porque todo lo que no es es , lo que significa que un objeto es . || truthy x 3 y true z {} z {} falsy truthy truthy // x is set to 3 let x = false || 0 || 3; // y is set to true let y = false || true || 3; // z is set to {} let z = {} || [] || x; Conclusión el El operador se usa con frecuencia en declaraciones lógicas, así como valores que no son falsos si se encuentra uno. Es un operador flexible que es fundamental para comprender JavaScript. Si está interesado en otro operador similar, también puede leer sobre el . || falsy operador coalescente nulo