JavaScript düzenli kod fonksiyonu parametreleri ve yan etkileri

Tam metin 2375 Kelimeler, tahmini öğrenme süresi 7 dakika

Kaynak: Pexels

Fonksiyonlar, JavaScript programlarının önemli bir parçasıdır ve kodu yeniden kullanılabilir bloklara bölmek için kullanılır. Bu nedenle, temiz JavaScript koduna sahip olmak için anlaşılması kolay işlevlere sahip olmamız gerekir.

Bu makale, bayrak parametreleri, ikili ve üçlü fonksiyonlar ve yan etkiler dahil olmak üzere premium fonksiyonların daha fazla özelliğini tanıtacaktır.

Bayrak parametreleri

Boole parametreleri dikkatli kullanılmalıdır. İşlev imzalarını daha karmaşık hale getirir ve bize işlevlerin birden fazla şey yaptığını (birden çok yola sahip olduğunu) söyler.

İkili fonksiyon

İkili fonksiyonları anlamak, daha az parametresi olan fonksiyonlardan daha zordur. Ancak bazen ikili işlevleri kullanmak mantıklıdır. Örneğin, Kartezyen koordinatlarını tutan bir nesne varsa, 2 parametresi olmalıdır.

Örneğin, bir yapıcıyla bir sınıf oluşturabilirsiniz, yapıcının aşağıda gösterildiği gibi 2 parametresi vardır:

class Point { yapıcı (x, y) { this.x = x; this.y = y; } } sabit nokta = yeni Nokta (1, 2);

Başka şekillerde tanımlamak neredeyse imkansız

Bununla birlikte, ikili işlevlerin daha az parametre kullanan işlevlerden daha fazla zaman ve çaba gerektirdiğinin farkında olmalıyız.

Üçlü fonksiyon

3 parametreli bir işlevin 2 parametreli bir işlevi anlamak için çok zaman ve çaba gerekir.

2 veya daha az parametre varsa, dikkate alınması gereken daha fazla parametre kombinasyonu vardır.

Parametreleri nesnelere birleştirin

Bir işlev birden fazla parametre içeriyorsa, bunları nesnelerde birleştirmeyi düşünmelisiniz.

Parametreler arasında bir korelasyon varsa, bu daha da yapılmalıdır. Örneğin, aşağıdaki işlev birçok parametre içerir:

const defineFruit = (renk, ad, boyut, fiyat, numSeeds, tür) = > { "$ {meyveAdı} değeri $ {meyveRengi}. $ {meyveBoyutu}. Maliyeti $ {fiyat}. $ {numSeeds} var. Eğer $ {tür}; }

6 parametre çok fazla olabilir, bir nesneye geçerek onu temizleyebilirsiniz:

const defineFruit = (meyve) = > { dönüş `$ {meyve.name}, $ {meyve.color}. $ {meyve.size}. Maliyeti $ {meyve.price}. $ {meyve.numSoyunları} var. $ {meyve.type ise tür } '; }

Gördüğümüz gibi, daha temiz ve çok sayıda parametreyi geçme konusunda endişelenmenize gerek yok.

İşlev daha kısa ve daha küçük olduğu için ekran görüntüsü için de daha uygundur.

5 parametre, bir fonksiyonun içermesi gereken maksimum değer olabilir.

Kaynak: Pexels

Fiiller ve anahtar kelimeler

Bir işlevin adına fiil ve anahtar sözcükler eklemek iyi bir fikirdir, çünkü bunlar bir şeyler yaparlar, bu da isimdeki fiilin makul olduğu anlamına gelir.

Ayrıca operasyonun amacını da bilmemiz gerekiyor. Bu, bunu yapmak için bazı anahtar kelimelerin eklenmesi gerektiği anlamına gelir.

Örneğin, bu noktaya uyan iyi bir işlev tanımı şuna benzer:

const copyArray = (dizi) = > ;

CopyArray adı, işlevin bir diziyi kopyaladığını bilmemizi sağlar.

Ayrıca, açıkça bir dizi olan işleve neyin aktarılacağını bilmemizi sağlar.

Yan efektleri olmayan

Yan etki, işlevdeki kodun işlevin dışında içeriği değiştirmesidir.

Bu kötüdür çünkü işlevin dışındaki içerikte gizli değişiklikler yapacaktır.

Bu durumdan olabildiğince kaçınmalıyız, çünkü beklenmedik bazı şeylere neden olur ve test etmek daha fazla zaman alır, çünkü parametreleri kabul etmenin, işlemleri gerçekleştirmenin ve sonuçları geri döndürmenin yanı sıra, işlevlerden birini de göz önünde bulundurması gerekir. Dışarıdaki içerik değiştirildi.

Bu, işlevin döndürdüğü sonuç dışında test etmemiz gerektiği anlamına gelir.

Örneğin, eğer varsa:

let numFruits = 1; const addFruit = () = > { numFruits ++; } const removeFruit = () = > { numFruits--; }

Sonra yan etkileri olan 2 fonksiyonumuz var çünkü her ikisi de numFruits değişkenini ilgili fonksiyonlarının dışında değiştiriyorlar.

Bu işlevleri yazmanın daha iyi bir yolu, onları saf işlevler olarak yazmaktır. Saf işlev, aynı içeriği aynı parametrelerle döndüren bir işlevdir. Üstelik yan etkisi yoktur.

Bu nedenle, saf fonksiyonların test edilmesi daha kolaydır ve davranışları da tahmin edilebilirdir.

Yukarıdaki kodu aşağıdaki gibi yeniden yazın:

let numFruits = 1; const addFruit = (numberOfFruits) = > numberOfFruits + 1; const removeFruit = (numberOfFruits) = > numberOfFruits-1; numFruits = addFruit (numFruits); numFruits = removeFruit (numFruits);

Şimdi, numFruits parametresini almak ve sırasıyla daha büyük veya daha küçük bir sayı döndürmek için iki işlev vardır.

Daha sonra numFruits değişkenini işlevin dışında değiştirmek için bunları kullanabilirsiniz.

Gördüğümüz gibi, numFruits üzerinde herhangi bir işlem yapmazlar, ancak numberOfFruits parametresini sırasıyla artı 1 veya eksi 1 olarak döndürürler.

Onlar için testler yazarsanız, girdiyi geçerek ve çıktının istediğimiz şey olup olmadığını kontrol ederek bunları kolayca test edebilirsiniz. Bu, test kodu için geçerli olabilecek değişkenlere yan etkiler atamaktan çok daha iyidir.

Kaynak: Pexels

Bayrak parametreleri en aza indirilmelidir. Bize fonksiyonun sadece bir şeyi değil, aynı zamanda fonksiyon imzasındaki başka bir parametreyi de başardığını söylediler.

Daha az parametre kullanan işlevler, daha fazla parametre kullanan işlevlerden daha iyidir. Birçok parametreye ihtiyacınız varsa, bunları tek bir nesnede birleştirmeyi düşünün.

Son olarak, koşullar izin veriyorsa, yan etkilerden mümkün olduğunca kaçınılmalıdır. Yan etkilere sahip işlevler gizli işlemler gerçekleştirir ve bunları test etmek zordur. Saf işlevler yan etkilere neden olmaz, bu nedenle daha test edilebilir ve öngörülebilirdirler.

Yorum Beğen Takip Et

Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

Bugünün temel sesi | taşralı adam programlamayı kendi kendine öğreniyor ve otomatik börek icat ediyor
önceki
Google'daki yaz stajı beni Silikon Vadisi'nden sonsuza kadar kaçma isteği uyandırdı ...
Sonraki
İyi bir programcı ile iyi bir programcı arasındaki fark nedir?
Core Voice Today | Birkaç yeni sipariş, daha fazla iptal: Tesla Nordic işten çıkarmalar
Zor problemleri çözmek için makine öğrenimi hile sayfalarını kullanabilir misiniz?
2020'de programcılar nasıl zarif bir şekilde daha fazla para kazanabilirler?
En iyi JavaScript uygulamalarını uygulayın - eski yapıları kullanmaktan kaçınmaya dikkat edin
JavaScript'te virgül operatörünün az bilinen sırrı
250 milyon dolarlık özel ulaşım sistemi neye benziyor?
Bugün Xinsheng Salgın ağların aşırı yüklenmesine neden oldu ve Avrupa'da İnternet eğlencesi feda edildi
Bilmeniz gereken 5 Python numarası
Guangxi, Longsheng İlçesindeki gönüllü parti üyeleri, çiftçilerin gelirlerini artırmalarına yardımcı olmak için çay seçiyor
"Ulusal Standart Dansın Kraliçesi" Liu Zhen vefat etti, Liang Jingru Guan Ying yas tutmak için bir mesaj gönderdi
"Örümcek Adam" Hollandalı erkek kardeş hasta olduğunu itiraf etti, ancak COVID-19 için test edilmeyi reddetti
To Top