2013-08-28 36 views
-2

邏輯語句總是返回一個布爾值,true或false。 但是,如何在OR邏輯運算中檢索真正的語句?檢索JS中OR邏輯運算的結果

+0

它並不總是在JS中返回一個布爾值。如果你想要一個布爾值,使用邏輯NOT運算符'var x = !!(foo || bar)' –

+0

true聲明來轉換它?你的意思是表達?你在談論融合運營商嗎? –

+0

作爲措辭的問題根本沒有意義,所以任何答案都是可以接受的,也是正確的答案。 – Kastor

回答

0

在JavaScript中,OR和AND運算符總是返回它們的一個操作數。 OR運算符返回第一個falsy操作數(並且在此之後不評估任何操作數)或最後一個操作數(如果它們全部爲真)。 AND運算符類似地返回第一個真值操作數或最後一個操作數,如果它們都是虛假的。

如果希望結果爲布爾值,可以使用!運算符,該運算符返回true表示真值,false返回真值。

概括起來:

!!(a || b)將返回true如果a和/或b是truthy和false否則。

a || b將返回a如果a是truthy和b否則。

編輯: 經過一些解釋,似乎你正在尋找的是分離OR的評估。

if (a === 56) { 
    // a is what you are looking for 
} else if (b === 56) { 
    // b is what you are looking for 
} else { 
    // neither a nor b are what you are looking for 
} 

上面這段代碼執行完全相同的評估爲您的代碼,但你的代碼分支,當第一個表達式爲真,執行另一個分支,如果第一個表達式爲假,第二個表達式,其執行是真的。

+0

但是,你如何檢索哪一個是真實的功能,例如'var a = 45,b = 56;函數的東西(a === 56 || b === 56){var result =; // return/retrieve operation true value(which is b)}' – HRanDEV

+0

你能澄清一下函數的參數是什麼嗎?請分開功能定義和實例調用。 – Tibos

+0

對不起,這是一個if語句,我想要檢索結果。 'var a = 45,b = 56;如果(a === 56 || b === 56){var result =; //返回/檢索操作真值(這是b)}' – HRanDEV