javascript logical-or

O lógico en JavaScript



logical-or (6)

Esta pregunta ya tiene una respuesta aquí:

Me encontré con un caso en el que ejecuté ambas funciones en un JavaScript o expresión:

function first(){ console.log("First function"); return true; }; function second(){ console.log("Second function"); return false; }; console.log(!!(first()||second()));

En este caso, generará:

"Primera función"

cierto

En C # hay un OR lógico (|) que es diferente de un condicional o (||) que asegurará que ambas expresiones sean evaluadas:

Func<bool> first = () => { Console.WriteLine("First function"); return true; }; Func<bool> second = () => { Console.WriteLine("Second function"); return false; }; Console.WriteLine(first() | second());

Esto generará:

En este caso, generará:

"Primera función"

"Segunda función"

cierto

Parece que no puedo encontrar ninguna información sobre cómo implementar la misma lógica en JavaScript sin ejecutar las expresiones de antemano:

function first(){ console.log("First function"); return true; }; function second(){ console.log("Second function"); return false; }; var firstResult = first(); var secondResult = second(); console.log(firstResult||secondResult);

¿Hay alguna manera de implementar un OR lógico C # en JavaScript?

Gracias.


Está utilizando un operador lógico bit a bit en c # y un operador OR condicional en JavaScript .

use el operador lógico a nivel de bit que evalúa ambos y produce los resultados como se esperaba.

console.log(!!(first()|second()));


Puede llamar a todas las funciones recopilando los valores y luego verificar los valores.

function first(){ console.log("First function"); return true; } function second(){ console.log("Second function"); return false; } console.log([first(), second()].some(Boolean));


Puede usar Bitwise u Operator y convertir el resultado a un valor booleano.

let a = () => {console.log("a"); return true} let b = () => {console.log("b"); return false} console.log(!!(a()|b()))

Esto salidas

una

si

cierto


Solo usa | ( Bitwise OR ):

function first(){ console.log("First function"); return true; }; function second(){ console.log("Second function"); return false; }; console.log(!!(first()|second()));

Lea más sobre operadores lógicos ( || , !! , etc ...) y operadores bit a bit ( | , & , etc ...) en JavaScript.


function first(){ console.log("First function"); return true; }; function second(){ console.log("Second function"); return false; }; console.log(!!(first() | second()));

// En su lugar, usa esto


function logicalOr(a, b) { return a || b; }

...

logicalOr(first(), second());

Si llama a esto con funciones que evaluaron antes de llegar a la declaración o.