JavaScript中的邏輯或




logical-or (4)

這個問題已經在這裡有了答案:

我遇到了在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#邏輯或?

謝謝。


只需使用 |Bitwise OR ):

function first(){
    console.log("First function");
    return true;
};

function second(){
    console.log("Second function");
    return false;
};

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

閱讀有關JavaScript中 邏輯運算符 ||!! 等)和 按位運算符 |& 等)的更多信息。


您可以使用按位運算符或運算符,並將結果轉換為布爾值

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

這個輸出

一種

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

//而是使用此





logical-or