JavaScript 中的逻辑 OR



我遇到了一个案例,我在JavaScript或表达式中运行了这两个函数:

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

在这种情况下,它将输出:

"第一个功能">

在 C# 中有一个逻辑 (|(OR 与条件或 (||( 不同,后者将确保计算两个表达式:

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

这将输出:

在这种情况下,它将输出:

"第一个功能">

"第二个功能">

我似乎找不到任何关于如何在不事先运行表达式的情况下在 JavaScript 中实现相同逻辑的信息:

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);

有没有办法在JavaScript中实现C#逻辑OR?

谢谢。

只需使用|(Bitwise OR(:

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

阅读更多关于JavaScript中的逻辑运算符(||!!等(和按位运算符(|&等...(的信息。

您可以通过收集值来调用所有函数,然后检查值。

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

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

logicalOr(first(), second());

如果你用函数调用它,它们在到达 or 语句之前就被评估了。

您可以使用按位或运算符并将结果转换为布尔值

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

这输出

一个

你在c#中使用按位逻辑运算符,在JavaScript中使用条件 OR 运算符。

使用按位逻辑运算符,该运算符按预期计算和输出。

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

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

改用这个

相关内容

  • 没有找到相关文章

最新更新