Bazen aşağıdaki örneğe benzer kod üzerine rastlamak (bu fonksiyon tam olarak bu sorunun kapsamı dışında ne yapar):
function doSomething(value) {
if (check1(value)) {
return -1;
}
else if (check2(value)) {
return value;
}
else {
return false;
}
}
Gördüğünüz gibi if
, else if
ve else
ifadeleri ifadeyle birlikte kullanılır return
. Bu rahat bir gözlemci için oldukça sezgisel görünüyor, ama ben else
-s bırakmak ve böyle kodu basitleştirmek için (bir yazılım geliştirici açısından) daha zarif olacağını düşünüyorum :
function doSomething(value) {
if (check1(value)) {
return -1;
}
if (check2(value)) {
return value;
}
return false;
}
Bir return
ifadeyi izleyen her şey (aynı kapsamda) hiçbir zaman yürütülmeyeceğinden bu mantıklıdır; yukarıdaki kod anlamsal olarak ilk örneğe eşittir.
Yukarıdakilerden hangisi iyi kodlama uygulamalarına daha çok uyuyor? Her iki yöntemin de kod okunabilirliği açısından herhangi bir dezavantajı var mı?
Düzenleme: Bu soru referans olarak sağlanan yinelenen bir öneri yapılmıştır . Diğer soruda gösterildiği gibi yinelenen ifadelerden kaçınmayı istemediğim için sorumun farklı bir konuya değindiğine inanıyorum. Her iki soru da biraz farklı şekillerde de olsa tekrarları azaltmaya çalışır.
-1
bir sayıdır, false
bir boole'dir ve value
burada belirtilmez, böylece herhangi bir nesne türü olabilir.
value
Aslında tamsayı olmasını umuyordum . Eğer bir şey olabilirse, o zaman daha da kötüdür.
else
az sorun, daha büyük sorun, iki veri türünü tek bir işlevden geri döndürmenizdir, bu da işlevin API'sını tahmin edilemez hale getirir.