Kural
Yapma gerekenden işlev değiştirmeyin.
İşlev fonksiyon değişkenleri karışıklığa çağıranları
çağıranları ve hata hata ayıklamayı zorlaştırır.
Desteklenen diller: 45+Giriş
İşlev parametrelerinin yeniden atanması, işlev içindeki argümanların değerini değiştirir ve bu da parametrenin herhangi bir anda hangi değeri barındırdığının belirsiz kalmasına neden olur. Hata ayıklama sırasında, bir parametrenin hâlâ çağıran tarafından geçirilen değeri içerdiğine güvenemezsiniz. Bu durum, kodu okuyan herkes için kafa karışıklığına yol açar ve parametrenin değeri yürütme süresince değiştiği için hataların izini sürmeyi zorlaştırır.
Kod örnekleri
❌ Uygun değil:
function processUser(user) {
if (!user) {
user = { id: null, name: 'Guest' };
}
user = { ...user, processedAt: Date.now() };
if (user.age < 18) {
user = { ...user, restricted: true };
}
return user;
}Neden yanlış: Şu kullanıcı Parametreye birden fazla kez yeni değer atanır; bu da fonksiyonun tamamını okumadan asıl çağıranın neyi ilettiğini anlamayı imkansız hale getirir. Hata ayıklama sırasında gerçek girdi değil, değiştirilmiş değerler gösterilir; bu da sorunların kaynağına kadar izini sürmeyi zorlaştırır.
✅ Uygunluk:
function processUser(user) {
const currentUser = user || { id: null, name: 'Guest' };
const processedUser = {
...currentUser,
processedAt: Date.now()
};
if (currentUser.age < 18) {
return { ...processedUser, restricted: true };
}
return processedUser;
}
Bunun önemi: Yeni değişkenler (currentUser, işlenmişKullanıcı) ara değerler içerirken, orijinal kullanıcı parametre değişmeden kalır. Hata ayıklayıcılar gerçek girdi değerini gösterir ve kod, adlandırılmış değişkenler aracılığıyla dönüşümleri net bir şekilde izler.
Sonuç
Dönüşümler için parametreleri yeniden atamak yerine yeni değişkenler kullanın. Bu, veri akışını açık hale getirir ve hata ayıklama amacıyla orijinal girdiyi korur. Ekstra değişken tanımlamalarının getirdiği hafif ayrıntı fazlalığı, okunabilirlik ve hata ayıklama kolaylığındaki artışla telafi edilir.

