Daha basit if ifadeleri her zaman daha temiz JavaScript kodu anlamına gelir.

Koşullu ifadeler, JavaScript'in önemli bir parçasıdır. Belirli bir koşulun doğru veya yanlış olmasına bağlı olarak kod yürütmenize izin verirler ve birden çok iç içe yerleştirebilirsiniz. başka if ifadeler (ve bir başka) birden fazla durumu değerlendirmek için.

Ama sorun şu: karmaşık yazarken eğer... başka zincirler, işler hızla karışabilir ve kolayca okunması ve anlaşılması zor kodlarla karşılaşabilirsiniz.

Uzun ve karmaşık yeniden düzenlemeyi öğrenelim eğer...elseif...else koşullu zincirleri daha özlü, daha temiz ve daha kolay anlaşılır bir sürüme dönüştürün.

Karmaşık if...else Zincirleri

JavaScript'te karmaşık if...else ifadeleri yazarken, yazmanız çok önemlidir temiz, özlü ve anlaşılır kod. Örneğin, şuna bir göz atın: eğer... başka aşağıdaki işlevin içindeki koşullu zincir:

işleviçebilir(kişi) {
eğer(kişi?.yaş != hükümsüz) {
eğer(kişi.yaş < 18) {
konsol.kayıt("Hala çok genç")
} başkaeğer(kişi.yaş < 21) {
konsol.kayıt(
instagram viewer
"ABD'de değil")
} başka {
konsol.kayıt("İçmesine izin var")
}
} başka {
konsol.kayıt("sen bir insan değilsin")
}
}

sabit kişi = {
yaş: 22
}

canDrink (kişi)

Buradaki mantık basittir. İlk eğer ifadesi, kişi nesnenin bir yaş mülkiyet (aksi takdirde o bir kişi değildir). Onun içinde eğer engelle, bir tane ekledin eğer...başka...eğer temelde şunu söyleyen zincir:

Kişi 18 yaşından küçükse, içki içmek için çok gençtir. 21 yaşından küçüklerse, Amerika Birleşik Devletleri'ndeki yasal içki içme yaşının hala altındadırlar. Aksi takdirde, yasal olarak bir içki alabilirler.

Yukarıdaki kod geçerli olsa da iç içe olması kodu anlamanızı zorlaştırır. Neyse ki, bir kod kullanarak kodu kısa ve okunması kolay olacak şekilde yeniden düzenleyebilirsiniz. güvenlik maddesi.

Koruma Maddeleri

ne zaman sahip olursan ol eğer tüm kodunuzu kapsayan bir ifade, kullanabilirsiniz güvenlik maddesi tüm yuvalamayı kaldırmak için:

işlevCanDrinkBetter() {
eğer(kişi?.yaş == hükümsüz) geri dönmekkonsol.kayıt("sen bir insan değilsin")

eğer(kişi.yaş < 18) {
konsol.kayıt("Hala çok genç")
} başkaeğer(kişi.yaş < 21) {
konsol.kayıt("ABD'de değil")
} başka {
konsol.kayıt("İçmesine izin var")
}
}

İşlevin başında, belirli bir koşul karşılanmazsa, işlevden çıkmak istediğinizi belirten bir koruma yan tümcesi tanımladınız. canDrinkBetter() hemen çalıştırın (ve konsolda "Sen bir kişi değilsin" oturumu açın).

Ancak koşul karşılanırsa, eğer... başka hangi bloğun geçerli olduğunu görmek için zincir. Kodu çalıştırmak size ilk örnekle aynı sonucu verir, ancak bu kodun okunması daha kolaydır.

Tek İade Kullanmayın

Yukarıdaki tekniğin bir iyi programlama prensibi çünkü aynı işlevde birden çok iade kullanıyoruz ve siz yalnızca bir iade beyanına (aka, tek iade politikası) sahip olmanın daha iyi olduğuna inanıyorsunuz.

Ancak bu, kod yazmanın korkunç bir yoludur çünkü sizi ilk kod örneğinde gördüğümüz aynı çılgın iç içe geçme durumlarına zorlar.

Bununla birlikte, birden fazla kullanabilirsiniz geri dönmek kodunuzu daha da basitleştirmek (ve iç içe yerleştirmeden kurtulmak) için ifadeler:

işlevCanDrinkBetter() {
eğer(kişi?.yaş == hükümsüz) geri dönmekkonsol.kayıt("sen bir insan değilsin")

eğer(kişi.yaş < 18) {
konsol.kayıt("Hala çok genç")
geri dönmek
}

eğer(kişi.yaş < 21) {
konsol.kayıt("ABD'de değil")
geri dönmek
}

konsol.kayıt("İçmesine izin var")
}

Bu kod, önceki iki örnekle aynı şekilde çalışır ve aynı zamanda biraz daha temizdir.

Temizleyici Kod için İşlevleri Çıkarma

Son kod bloğumuz ilk ikisinden daha temizdi ama yine de olabileceği kadar iyi değil.

uzun yaşamak yerine eğer... başka bir fonksiyonun içinde zincir, ayrı bir fonksiyon oluşturabilirsiniz canDrinkResult() bu sizin için kontrolü yapar ve sonucu döndürür:

işlevcanDrinkResult(yaş) {
eğer(yaş < 18) geri dönmek"Hala çok genç"
eğer(yaş < 21) geri dönmek"ABD'de değil"
geri dönmek"İçmesine izin var"
}

Ardından, ana işlevin içinde yapmanız gereken tek şey, işlevi çağırmadan önce koruma yan tümcesini uygulamaktır. canDrinkResult() sonucu almak için (parametresi yaş olan) işlevi:

işlevCanDrinkBetter() { 
eğer(kişi?.yaş == hükümsüz) geri dönmekkonsol.kayıt("sen bir insan değilsin")

izin vermek sonuç = canDrinkResult (person.age)
konsol.log (sonuç)
}

Yani bu durumda, içki içme yaşını kontrol etme görevini ayrı bir işleve devrettiniz ve onu yalnızca gerektiğinde çağırdınız. Bu, kodunuzu özlü ve önceki tüm örneklerden daha kolay çalışır hale getirir.

else Koşullu İfadelerden Uzak Tutun

Koruma yan tümceleri ve işlev çıkarma tekniğini kullanarak karmaşık, iç içe koşullu zincirleri daha kısa, okunması daha kolay olanlara nasıl yeniden düzenleyeceğinizi öğrendiniz.

tutmaya çalış başka hem koruma yan tümcelerini hem de işlev çıkarma tekniğini kullanarak ifadeyi koşullu ifadelerinizden olabildiğince uzaklaştırın.

JavaScript'i kullanma konusunda hâlâ yeniyseniz eğer... başka ifade, temel bilgilerle başlayın.