JavaScript 中的逻辑或
Logical OR in JavaScript
我 运行 遇到 运行 两个函数都在 JavaScript 或表达式中的情况:
function first(){
console.log("First function");
return true;
};
function second(){
console.log("Second function");
return false;
};
console.log(!!(first()||second()));
在这种情况下它会输出:
"First function"
true
在 C# 中,逻辑 (|) OR 不同于条件或 (||),后者将确保两个表达式都被计算:
Func<bool> first = () => { Console.WriteLine("First function"); return true; };
Func<bool> second = () => { Console.WriteLine("Second function"); return false; };
Console.WriteLine(first() | second());
这将输出:
在这种情况下它会输出:
"First function"
"Second function"
true
我似乎无法找到任何关于如何在 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# 逻辑或?
谢谢。
您可以通过收集值调用所有函数,然后检查值。
function first(){
console.log("First function");
return true;
}
function second(){
console.log("Second function");
return false;
}
console.log([first(), second()].some(Boolean));
只需使用 |
(Bitwise OR
):
function first(){
console.log("First function");
return true;
};
function second(){
console.log("Second function");
return false;
};
console.log(!!(first()|second()));
阅读 JavaScript 中有关 logical operators (||
, !!
, etc...) and bitwise operators(|
、&
等...)的更多信息。
function logicalOr(a, b) {
return a || b;
}
...
logicalOr(first(), second());
如果您使用它们在到达 or 语句之前求值的函数来调用它。
您在 c# 中使用了按位逻辑运算符,在 JavaScript 中使用了条件或运算符。
使用按预期计算和输出的按位逻辑运算符。
console.log(!!(first()|second()));
function first(){
console.log("First function");
return true;
};
function second(){
console.log("Second function");
return false;
};
console.log(!!(first() | second()));
// 改用这个
您可以使用按位或运算符并将结果转换为布尔值
let a = () => {console.log("a"); return true}
let b = () => {console.log("b"); return false}
console.log(!!(a()|b()))
这输出
a
b
true
我 运行 遇到 运行 两个函数都在 JavaScript 或表达式中的情况:
function first(){
console.log("First function");
return true;
};
function second(){
console.log("Second function");
return false;
};
console.log(!!(first()||second()));
在这种情况下它会输出:
"First function"
true
在 C# 中,逻辑 (|) OR 不同于条件或 (||),后者将确保两个表达式都被计算:
Func<bool> first = () => { Console.WriteLine("First function"); return true; };
Func<bool> second = () => { Console.WriteLine("Second function"); return false; };
Console.WriteLine(first() | second());
这将输出:
在这种情况下它会输出:
"First function"
"Second function"
true
我似乎无法找到任何关于如何在 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# 逻辑或?
谢谢。
您可以通过收集值调用所有函数,然后检查值。
function first(){
console.log("First function");
return true;
}
function second(){
console.log("Second function");
return false;
}
console.log([first(), second()].some(Boolean));
只需使用 |
(Bitwise OR
):
function first(){
console.log("First function");
return true;
};
function second(){
console.log("Second function");
return false;
};
console.log(!!(first()|second()));
阅读 JavaScript 中有关 logical operators (||
, !!
, etc...) and bitwise operators(|
、&
等...)的更多信息。
function logicalOr(a, b) {
return a || b;
}
...
logicalOr(first(), second());
如果您使用它们在到达 or 语句之前求值的函数来调用它。
您在 c# 中使用了按位逻辑运算符,在 JavaScript 中使用了条件或运算符。
使用按预期计算和输出的按位逻辑运算符。
console.log(!!(first()|second()));
function first(){
console.log("First function");
return true;
};
function second(){
console.log("Second function");
return false;
};
console.log(!!(first() | second()));
// 改用这个
您可以使用按位或运算符并将结果转换为布尔值
let a = () => {console.log("a"); return true}
let b = () => {console.log("b"); return false}
console.log(!!(a()|b()))
这输出
a
b
true