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.