Soru JavaScript'teki “elseif” sözdizimi


Bu doğru mu?

if(condition)
{

} 
elseif(condition)
{

}
else
{

}

237
2017-10-23 19:06


Menşei




Cevaplar:


JavaScript'in elseif "else if" biçimindedir, örn .:

if (condition) {

} else if (other_condition) {

} else {

}

444
2017-10-23 19:08



İnsanlar böyle sorular sorduğunda .. Bunun temel bir yanlış anlama olduğunu düşünüyorum. İle if ve else gerçekten gerek yok elseif. - mpen
@Mark, katılıyorum ... ama bazen beni sıkıyor çünkü başka bir dile sahip olan dillere alışkınım. Aynı olduğunu biliyorum ama javascript'in nedeninin onu dışarıda bıraktığını merak ediyorum. Ancak elif kullanmadıklarına sevindim, çünkü bu doğru değil :) - Jay K
@JayK: Haha .. PHP var elseif, perl var elsif (Sanırım) ve Python’un elif.. ilk başta beni bu kadar sinirlendirdi, ama ... sanırım bu çok tatlı. Ancak Python ve PHP'de hafif bir amaca hizmet ediyor, çünkü aksi takdirde kolon sözdizimi ile çalışmayacaktı. - mpen
@Mark Bu, parantezlemenin yanlış anlaşıldığını gösterir. Parantez için gerekli değildir if/else bloklar, ancak insanlar onları kullanmaya teşvik edilir, bu yüzden bunun neden yeni bir kullanıcıya yanlış geldiğini anlayabilirim.
@Mark "else if" ifadesinin kullanılmasının bir nedeni olmadığını iddia etmek yanlıştır. If deyimleri "geçiş" kullanmaya benzerse, ancak daha ayrıntılı karşılaştırmalar için izin verecektir. Anahtar, elbette, sadece çok basit karşılaştırmalara izin verir. Öyleyse, evet, eğer kullanmak için kesinlikle iyi sebepler var. - jolsen


Sadece bir boşluk ekleyin:

if (...) {

} else if (...) {

} else {

}

44
2017-10-23 19:07





İşlevsel olarak eşdeğer olan bu sözdizimini kullanabilirsiniz:

switch (true) {
  case condition1:
     //e.g. if (condition1 === true)
     break;
  case condition2:
     //e.g. elseif (condition2 === true)
     break;
  default:
     //e.g. else
}

Bu her biri için çalışır condition ile karşılaştırılmadan önce tamamen değerlendirilir switch değer, yani ilk değerlendiren true eşleşecek ve şubesi çalışacaktır. Takip eden şubeler, kullanmayı hatırla break.

Bunu not et sıkı Karşılaştırma kullanılır; condition sadece "gerçeği" olacak değil yürütülür. Doğru bir değer atayabilirsiniz. true çift ​​olumsuzlama ile: !!condition.


27
2017-10-31 14:16



Bu, işlevsel olarak eşdeğer AFAIK değildir. Koşullara ne koyabileceğiniz çok daha sınırlı ve switch (true) mantıklı bile değil. - zwol
Kabul ediyorum ki ilk başta garip görünüyor ama eşdeğer. Durum istediğiniz herhangi bir şey olabilir (işlev çağrıları veya herhangi bir şey dahil) ve eğer değerlendirirse true o zaman bu dava karşılanacak - aynen else if. - Tamlyn
Oh, şimdi ne yaptığını görüyorum. Bu çok akıllıca zeki. (Nasıl çalıştığımı anlatan bir paragraf ekledim, böylece reddetmem geri çekilebildim.) - zwol
Bu, 1'den fazla "durum" durumunda durum listesi için çok basit, temiz ve zarif bir çözümdür. - Steve Goossens
Koşullar booleanlara dönmüyorsa tamamen eşdeğer değil, ör. if([]) alert('a') uyarısı üretir ama switch(true){case []:alert('a')} yapmaz. O yüzden [] bir doğruluk değeridir ama eşit değildir true, @zwol açıklandığı gibi bu düzenleme. - Oriol


Aslında, teknik olarak doğru bir şekilde girintilendiğinde düşünüyorum:

if (condition) {
    ...
} else {
    if (condition) {
        ...
    } else {
        ...
    }
}

Yok else if.


8
2018-05-12 20:06



Bunu yazabilirsin ve yazmalısın if (condition1) { ... } else if (condition2) { ... } else { ... }. - zwol
Özünde kullanırken else if aslında isteğe bağlı bloğu atlıyorsunuz {...}. Referans aldım EMCAScript ve MDN.. - skube
Dilin resmi dilbilgisi açısından doğrusınız, fakat cevabınız insanlara yanlış izlenim verebilir. else { if ... } iyi bir stil. - zwol


if ( 100 < 500 ) {
   //any action
}
else if ( 100 > 500 ){
   //any another action
}

Kolay kullanım alanı


6
2018-04-11 16:22





Koşullu ifadeler, farklı koşullara bağlı olarak farklı eylemler gerçekleştirmek için kullanılır.

kullanım if Belirtilen bir koşul doğruysa yürütülecek kod bloğunu belirtmek için

kullanım else Aynı durum yanlışsa, yürütülecek kod bloğunu belirtmek için

kullanım else if İlk koşul yanlışsa, test edilecek yeni bir koşul belirlemek


2
2018-03-23 13:39