2013-05-20 11 views
5

Eğer bir if-statement için bir shorthand Javascript notasyonu bulmak için internette geziniyordum. SADECE eğer, başka değil. Benim sorum: var mı? örneğin:Eğer kısa gösterim

(i === 0) ? onlyMyTrueValue; 

ı bulmak gibi tek pasajı bu biridir:

(i === 0) ? myTrueValue : myFalseValue; 
+3

Google kısa devre değerlendirmesi. –

+2

Bir "if" ifadesi yazmanın kestirme yolu "if (i === 0) somevar = someval;" Ancak bir JS minifier'ın bunu işlemesine izin vermelisiniz. – zzzzBov

cevap

14

Sen yapabilirsiniz:

(i === 0) && onlyMyTrueValue; 

yukarıdaki ifadenin sağ tarafında sadece çalıştırır sol taraf geçer.

+0

JavaScript'in bu özelliği beni çok fazla şımarttı. – ajp15243

+0

Bunu bilirdim, +1 – tymeJV

+0

@ ajp15243 - Hoşgörüsümü reddedemiyorum .. ;-) – techfoobar

11

(i === 0) && onlyMyTrueValue; yapabilirdiniz, ancak okunabilirlik için yapmamalısınız.

(i === 0) ? onlyMyTrueValue; 

Ve düz eski eğer:

orijinal karşılaştırın

sadece bir tane daha karakter ve && yöntemine karakter özdeş bir rakamdır
if (i === 0) onlyMyTrueValue; 

. Okunabilir seçim ile git.

+2

+1. Her ne kadar var gibi bir durum bulsam da var foo = bar || []; 'atamaya çalıştığınız değer (' bar'), filtrelenmek istediğiniz 'undefined' veya' null' gibi bir şey varsa, varsayılan değerleri atamak için yararlıdır. – ajp15243

+2

Okunabilirlik **, kodun% 99,9'unu bulan dalda okunan en önemli şeydir. Kısa devre yolu daha az okunabilir. Dosya boyutu konusunda endişeleriniz varsa, kodunuzu önce kapatma derleyicisinden geçirin, kısa devrelerin ifs'lerini küçültür. –

+1

@nathanhayfield Sadece OP'den alıntı yapıyor ve bu varsayımsal sözdizimini karşılaştırıyordu. – 1983