O operador lógico OR (ou ) em JavaScript é um operador que retorna o lado esquerdo se o lado for , mas, caso contrário, o padrão retorna o lado direito. || esquerdo truey Isso significa que ele pode ser usado para testar ambas as declarações lógicas e também para retornar o operando do lado direito caso o esquerdo seja . falsy Vamos dar uma olhada em como ele funciona. O que Truthy e Falsy realmente significam em JavaScript Antes de continuarmos, vamos primeiro entender o que significa . Pode parecer uma afirmação vaga, mas na verdade tem uma definição muito específica. Os seguintes valores são em JavaScript: falsy falsy false ou ou 0 -0 0n string vazia, ou seja, any "" null undefined NaN Da mesma forma, significa simplesmente qualquer coisa que . truthy não seja falsy Como pode significar e , às vezes pode ser uma má escolha para definir valores padrão. falsy 0 "" Por exemplo, em alguns cenários, se o seu valor for realmente e você quiser mostrá-lo, não será possível com o operador. Para esses casos, é melhor considerar o operador de coalescência nula. 0 || Como funciona o operador OR lógico em JavaScript? Como mencionado, o operador tem duas funções principais em JavaScript. Mais comumente, é encontrado em instruções lógicas , onde retorna true se um ou mais de seus operandos for , mas também é usado para retornar o primeiro valor se for , ou padrão para o lado direito operando se não. || if..else truthy truthy O funciona de ambas as maneiras porque, na verdade, retorna um valor. || Usando Lógico OU Com Lógica Você provavelmente já deve ter visto mais comumente usado em declarações lógicas como e . Nesses casos, normalmente estamos testando uma instrução lógica, então retornará se um ou mais de seus operandos for . || if else || true truthy O que está acontecendo abaixo é o o operador retorna um valor, que a instrução converte em ou || 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 é uma das principais formas de usar em seu código, mas também é frequentemente usado para retornar valores com base em quão ou eles são. || truthy falsy Valores de retorno Vejamos outro exemplo agora, fora das declarações lógicas. Como mencionado, retorna seu lado esquerdo se for , mas, caso contrário, retorna seu lado direito. || truthy Isso soa um pouco confuso, então vamos ver alguns exemplos. // 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; No exemplo acima, como tem seu lado esquerdo definido como , se torna 1. Da mesma forma, em , como não é , o valor de é . Essa funcionalidade é diferente de sua aplicação em instruções lógicas e instruções , mas pode ser útil em muitas situações. x false x y "hello" falsy y "hello" if..else Curiosamente, mesmo que o último item fornecido seja , o JavaScript ainda o retornará. falsy Por exemplo: // Is set to null since false is falsy let x = false || null; // Is set to false since 0 is falsy let y = 0 || false; Encadeando o Operador OR É possível encadear o operador em JavaScript. Ao encadear instruções lógicas (em cláusulas ), a instrução retornará true se qualquer item for verdadeiro: || 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'); } Quando usamos encadeado fora das declarações lógicas, ele usará o primeiro valor encontrado ou o padrão para o valor final. Por exemplo, abaixo, é igual a , é e é . Se você está se perguntando por que é , é porque qualquer coisa que não seja , é , o que significa que um objeto é ! || 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; Conclusão O O operador é frequentemente usado em declarações lógicas, bem como o padrão para valores não , se um for encontrado. É um operador flexível que é essencial para entender o JavaScript. Se você estiver interessado em outro operador semelhante, também pode querer ler sobre o . || falsy operador de coalescência nullish