2010-03-02 30 views
74

據我所知,在JavaScript中,你可以這樣寫:如何在JavaScript IF語句中使用OR條件?

if (A && B) { do something } 

但是如何執行一個或諸如:

if (A OR B) { do something } 
+2

這是非jQuery特有的方式。這只是一個Javascript庫。你的問題是Javascript特定的。 – BalusC 2010-03-02 14:41:40

+2

@BalusC這幾天它們幾乎是同義詞:P – Dolbz 2010-03-02 14:47:27

回答

186

只需使用即可使用雙管道運算符。

if (A || B) 
12
if (A || B) { do something } 
10

||是或操作符。

if(A || B){ do something } 
62

值得注意的是||如果B和A都是真的,也將返回真。

在JavaScript中,如果你正在尋找A或B 但不能同時,你需要做類似的東西:

if((A && !B) || (B && !A)) { ... }

+0

不應該是第一個短語是「值得注意的是,如果其中一個var A或var B是真的,它將返回true」?它意味着你提到的是(true | true)= true。這是常見的和理解的。 – 2015-01-23 07:44:12

+8

(A &&!B)|| (B &&!A)**可以替換爲** A^B,它更平滑 – super 2015-10-28 14:31:16

+1

@Murplyx:在大多數情況下,是的,但32位範圍以外的數字可能會失敗。 '(Math.pow(2,32)-1)^ 0; // -1(成功)'...'Math.pow(2,32)^ 0; // 0(失敗)' – 2016-05-12 00:44:39

0

只需使用||

if (A || B) { your action here } 

注意:帶字符串和數字。這更復雜。深understading

檢查this

+3

這個問題已經在四年前回答了。你的答案是否改善了現有的答案? – 2014-06-27 16:04:34

+0

@JoeFrambach:不,我只想做出更明確的答案:) – haotang 2014-06-28 12:35:58

+0

什麼是'||:'運算符? – 2014-06-28 15:14:49

5

這裏是我的例子:

if(userAnswer==="Yes"||"yes"||"YeS"){ 
console.log("Too Bad!"); 
} 

這是說,如果答案是肯定的回答是或者不是同樣的事情會發生

+0

您的答案是否改善了現有的答案?這是一個特定的用例? – emecas 2014-12-30 21:03:16

+0

它工作嗎?我這樣的代碼,但它是語法錯誤。我的代碼是這樣的。 'if(name ==='Jam'|| name ==='Jem'|| name =='Jum')' – Penguin 2015-06-04 06:17:19

+5

是的,我發現了難以分開的每個陳述。我研究出「if(number === 1 || 2 || 3)'就像'while(true)';第二個和第三個條件詢問2是否是2和/或3是3.它們總是按照語句總是經過的順序解析。我計劃減少字符數。將括號保留在括號中可以使閱讀更容易。 – 2015-07-13 15:03:59

0
if(req.widgetType == 'text' || req.widgetType == 'textWithGauge' || req.widgetType == 'speedoMeter'){ console.log(req.widgetType) 
        } 

text