Saf fonksiyonlar
Yan etkisi olmayan, aynı girişe aynı çıktıyı veren saf fonksiyonları öğrenirsin.
Saf fonksiyonlar
Bir saf fonksiyon (pure function), aynı girdi her zaman aynı çıktıyı üretir ve dış dünyayı değiştirmez. Yan etkisi yoktur: dosya yazmaz, ekrana yazdırmaz, global değişkeni değiştirmez.
const add = (a, b) => a + b;Bu fonksiyon safdır çünkü yalnızca a ve b'yi kullanır ve yeni bir değer döndürür. Aynı (2, 3) girdisi her zaman 5 verir. Bu özellik deterministik olmak olarak bilinir ve test etmeyi kolaylaştırır.
Yan etkiler
Bir yan etki (side effect), fonksiyonun dış dünyada gözlemlenebilir bir değişiklik yapmasıdır. Global bir değişkeni değiştirmek, ekrana yazdırmak, bir diziye push yapmak veya ağ isteği göndermek yan etkilerdir.
let total = 0;
function add(n) {
total += n;
}add saf değildir çünkü total değişkenini değiştirir. Aynı girdi farklı sonuçlar verebilir çünkü çağrı sayısına bağlıdır. Saf fonksiyonlar bu belirsizliği ortadan kaldırır ve kodun okunmasını kolaylaştırır.
Uygulama Saf bir tax fonksiyonu yaz
price adında bir parametre alan ve price değerini KDV oranıyla çarpan saf bir ok fonksiyonu yaz. Fonksiyonun adı tax olsun. Sonra console.log(tax(100)) çağrısı ile sonucu yazdır.
Örnek çözümü göster
const tax = (price) => price * 1.2;
console.log(tax(100));
Kendini test et
-
Hangisi saf fonksiyondur?
- let total = 0; function add(n) { total += n; }
- function roll() { return Math.random(); }
- const double = (n) => n * 2;
- function log(msg) { console.log(msg); }
Cevabı göster
const double = (n) => n * 2; — Doğru! double yalnızca n'yi kullanır ve yeni değer döndürür; dış durumu değiştirmez.
-
Saf bir double fonksiyonu tamamla
const double = (n) => ____;Cevabı göster
const double = (n) => n * 2; -
Saf fonksiyon kavramlarını eşleştir
- saf fonksiyon
- aynı girdi, aynı çıktı
- yan etki
- dış durumu değiştirir
- deterministik
- rastgelelik yok