VEYA koşulu bir JavaScript IF deyiminde nasıl kullanılır?


108

JavaScript'te yazabileceğinizi anlıyorum:

if (A && B) { do something }

Ancak aşağıdaki gibi bir VEYA'yı nasıl uygularım:

if (A OR B) { do something }

2
Bu arada, jQuery'ye özel değil. Bu sadece bir Javascript kitaplığı. Sorunuz Javascript'e özeldir.
BalusC

2
@BalusC bu günlerde neredeyse eşanlamlıdırlar: P
Dolbz

1
@Dolbz pfooo katılmıyorum !! : P
web yıldızları

1
@ web-stars 2010'dan beri çok şey değişti :)
Dolbz

@Dolbz mmm, oops ...: P Ve 2010'dan beri hala hiçbir şey bilmiyorum.
web-stars

Yanıtlar:



85

Fazlalaştı ||da dönecektir trueeğer İKİ Ave Bvardır true.

JavaScript'te, Aveya arıyorsanız B, ancak ikisini birden değil , aşağıdakilere benzer bir şey yapmanız gerekir:

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

İlk ifade, "Şunu belirtmek gerekir ki || eğer var A VEYA var B doğruysa doğru dönecektir" ?? Bahsettiğiniz şeyin (true | true) = true olduğunu ima eder. yaygın olan ve anlaşılan.
Punith Raj

10
(A &&! B) || (B &&! A) , çok daha pürüzsüz olan A ^ B ile değiştirilebilir

1
@Murplyx: Çoğu durumda evet, ancak 32 bit aralığı dışındaki sayılar başarısız olabilir. (Math.pow(2,32)-1) ^ 0; // -1 (success)...Math.pow(2,32) ^ 0; // 0 (failure)

if (A ? !B : B) {...32 bitlik sınırlaması olmayan daha kısa bir yedek olacaktır. Veya belkiif (!A != !B) {...

1
@squint Neden bir true veya false 32 bit aralığının dışında olsun ki, bu nedenle bunlar yalnızca 0 veya 1'dir ve sayıları karşılaştırırsanız btw boole değerini elde etmek için sadece !! n kullanın.




9

işte benim örneğim:

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

Bu, cevabın Evet evet veya YeS ise aynı şeyin olacağını söylüyor


1
Cevabınız mevcut herhangi bir cevaba göre iyileşiyor mu? Belirli bir kullanım durumu mu?
emecas

İş mi? Ben böyle kodluyorum ama bu sözdizimi hatası. Ben böyle kodluyorum. if (name === 'Jam' || name === 'Jem' || name == 'Jum')
penguen

7
Evet, her bir ifadeyi ayrı ayrı eklemenin zor yolunu keşfettim. Dışarı o çalıştı if (number === 1||2||3)gibidir while (true); ikinci ve üçüncü koşullar, 2'nin 2 olup olmadığını ve / veya 3'ün 3 olup olmadığını sorarlar. Her zaman ifadeye her zaman doğru olarak karar verirler. Karakter sayısını azaltma planım devam ediyor. İfadeleri parantez içinde tutmak, okumayı kolaylaştırır.
TimSmith-Aardwolf

3
Tüm farklı durum değişkenlerini kontrol etmek yerine .toLowerCase () kullanmak çok daha iyidir.
AquaAlex

1
var choice = istemi ("Taş, kağıt veya makas mı seçersiniz?"). toLowerCase (); if (userChoice! = ("kağıt" || "rock" || "makas")) {console.log ("Geçersiz Seçim yapıldı"); }
AquaAlex

1

Bir kullanabilirsiniz düzenli ifadeler de:

var thingToTest = "B";
if (/A|B/.test(thingToTest)) alert("Do something!")

Aşağıda genel olarak normal ifadelere bir örnek verilmiştir:

var myString = "This is my search subject"
if (/my/.test(myString)) alert("Do something here!")

Bu, "myString" değişkeni içinde "benim" i arayacaktır. Doğrudan "myString" değişkeninin yerine bir dizeyi değiştirebilirsiniz.

Ek bir bonus olarak, büyük / küçük harfe duyarlı olmayan "i" ve genel "g" harflerini de aramaya ekleyebilirsiniz.

var myString = "This is my search subject"
if (/my/ig.test(myString)) alert("Do something here");


İlginç. Belgeler mi?
Ken Sharp

0

OR(||)İf condition ve notation is'de operatörü kullanmak için birden fazla koşul ifadesine ihtiyaç vardır ||.

if(condition || condition){ 
   some stuff
}

1
Neden eski soruları tam olarak aynı cevapla cevaplıyorsunuz?
Ken Sharp

0

Beğen kullanabilirsiniz

if(condition1 || condition2 || condition3 || ..........)
{       
     enter code here
}

1
Neden eski soruları tam olarak aynı cevapla cevaplıyorsunuz?
Ken Sharp

0

Normal ifadelerden bahsedeceksek, switchifadeden de bahsedebiliriz .

var expr = 'Papayas';
switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
    break;
  case 'Mangoes':
  case 'Papayas': // Mangoes or papayas
    console.log('Mangoes and papayas are $2.79 a pound.');
    // expected output: "Mangoes and papayas are $2.79 a pound."
    break;
  default:
    console.log('Sorry, we are out of ' + expr + '.');
}


-1

Sadece kullan ||

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

Not: dize ve sayı ile. Daha karmaşık.

Derin anlamlandırma için bunu kontrol edin :


7
Bu soru dört yıl önce cevaplandı. Cevabınız mevcut herhangi bir cevaba göre iyileşiyor mu?
Frambot

@JoeFrambach: Hayır. Sadece daha net bir cevap vermek istiyorum :)
haotang
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.