- Katılım
- 21 Ocak 2024
- Mesajlar
- 113
- Tepkime puanı
- 29
- Puanları
- 28
Fonksiyon, belirli bir görevi yerine getirmek için tasarlanmış yeniden kullanılabilir bir kod bloğudur. Bir fonksiyon, “bir şey” onu çağırdığında (çağırdığında) çalıştırılır. Yeniden kullanılabilir bir kod bloğudur. Fonksiyonlar, belirli bir görevi yerine getiren kodu birden çok kez çağırabileceğiniz bir blok halinde kapsüllemenize olanak tanır. Fonksiyonlar JavaScript'te “birinci sınıf nesnelerdir”, yani nesnelerin özellikleri, dizilerin öğeleri, diğer fonksiyonların argümanları ve daha fazlası olabilirler.
Parametreler ve Bağımsız Değişkenler:
Parametreler bir fonksiyona aktarılan adlandırılmış değişkenlerdir; fonksiyon çağrıldığında fonksiyona girilecek değerler için yer tutucu görevi görürler.
Bir fonksiyon çağrıldığında, aktarılan gerçek değerler argüman olarak bilinir.
Fonksiyon Gövdesi:
Fonksiyonun içinde, fonksiyonun ne yaptığını tanımlayan bir kod bloğu bulunur. Bu, küme parantezleri {} içine alınır.
Return Deyimi:
Fonksiyonlar bir return deyimi ile kendisini çağıran koda bir değer gönderebilir. Geri dönüş ifadesi yoksa, fonksiyon tanımlanmamış bir değer gönderir.
Bir Fonksiyonu Çağırmak:
Bir fonksiyonu, adını ve ardından parantezleri yazarak ve isteğe bağlı olarak parantezlerin içine argümanlar ekleyerek çalıştırırsınız (veya “çağırırsınız”).
İşte basit bir JavaScript fonksiyonu örneği:
JavaScript'te fonksiyonlar, nasıl tanımlandıklarına ve nasıl kullanıldıklarına bağlı olarak çeşitli şekillerde kategorize edilebilir.
Fonksiyon Bildirimi (Fonksiyon Deyimi):
Fonksiyon bildirimi, fonksiyon anahtar sözcüğünü takiben fonksiyon adını kullanarak bir fonksiyonu tanımlamanın standart bir yoludur.
Fonksiyon bildirimleri kaldırılır, yani fonksiyon kodda tanımlanmadan önce çağrılabilir.
Fonksiyon İfadesi:
Bir fonksiyon ifadesinde, fonksiyon tanımlanır ve bir değişkene atanır. İşlev adlandırılmış veya anonim olabilir. Kaldırılmazlar ve bu nedenle tanımlanmadan önce çağrılamazlar.
Arrow Fonksiyonları:
Arrow fonksiyonları, fonksiyon ifadeleri yazmak için daha özlü bir sözdizimidir. Kendi this'lerini, argümanlarını, super'lerini veya new.target'larını bağlamazlar.
Her zaman anonimdirler ve kaldırılmazlar.
Tek ifadeli geri dönüşler için küme parantezleri ve return anahtar sözcüğü atlanabilir:
IIFE ( Immediately Invoked Function Expression):
IIFE, oluşturulduktan hemen sonra çalıştırılan bir fonksiyondur.
İşlev için özel bir kapsam oluşturur ve bu da değişken adlandırma çakışmalarını önlemeye yardımcı olur.
Anonim Fonksiyonlar:
Bunlar isimsiz fonksiyonlardır. Genellikle ilk oluşturulduktan sonra erişilemezler.
Genellikle fonksiyonların değer olarak kullanıldığı bağlamlarda kullanılırlar (geri aramalar veya olay dinleyicileri gibi).
Adlandırılmış Fonksiyon İfadeleri:
Fonksiyon ifadelerine benzer, ancak fonksiyon anahtar sözcüğü ile parantezler arasına bir ad eklenir.
İsim, fonksiyonun gövdesi (kapsamı) için yereldir.
Callback Fonksiyonları:
Geri çağırma işlevi, başka bir işleve argüman olarak aktarılan bir işlevdir.
Bu teknik, bir fonksiyonun başka bir fonksiyonu çağırmasını sağlar. Bir geri arama fonksiyonu, başka bir fonksiyonun işi bittikten sonra çalışabilir.
Higher-Order Fonksiyonlar:
Yüksek dereceli fonksiyonlar, diğer fonksiyonları argüman olarak alan veya sonuç olarak fonksiyon döndüren fonksiyonlardır.
Bu model JavaScript'te, özellikle map, filter ve reduce gibi dizi yöntemlerinde yaygındır.
Generator Fonksiyonları:
Üreteç fonksiyonları, her seferinde bir tane olmak üzere yinelemeli olarak döndürülebilen bir dizi değer tanımlamanıza olanak tanır.
Fonksiyon* sözdizimi kullanılarak tanımlanırlar.
Üreteçler duraklatılabilir ve yeniden başlatılabilir, yeniden başlatmalar arasında bağlamlarını (değişken bağları) korurlar.
Generatörler genellikle for...of döngüsü ile veya generator nesnesi üzerinde .next() yöntemini manuel olarak çağırarak kullanılır. Bu fonksiyon türlerinin her biri farklı avantajlar sunar ve farklı senaryolar için uygundur.
Parametreler ve Bağımsız Değişkenler:
Parametreler bir fonksiyona aktarılan adlandırılmış değişkenlerdir; fonksiyon çağrıldığında fonksiyona girilecek değerler için yer tutucu görevi görürler.
Bir fonksiyon çağrıldığında, aktarılan gerçek değerler argüman olarak bilinir.
Fonksiyon Gövdesi:
Fonksiyonun içinde, fonksiyonun ne yaptığını tanımlayan bir kod bloğu bulunur. Bu, küme parantezleri {} içine alınır.
Return Deyimi:
Fonksiyonlar bir return deyimi ile kendisini çağıran koda bir değer gönderebilir. Geri dönüş ifadesi yoksa, fonksiyon tanımlanmamış bir değer gönderir.
Bir Fonksiyonu Çağırmak:
Bir fonksiyonu, adını ve ardından parantezleri yazarak ve isteğe bağlı olarak parantezlerin içine argümanlar ekleyerek çalıştırırsınız (veya “çağırırsınız”).
İşte basit bir JavaScript fonksiyonu örneği:
JavaScript'te fonksiyonlar, nasıl tanımlandıklarına ve nasıl kullanıldıklarına bağlı olarak çeşitli şekillerde kategorize edilebilir.
Fonksiyon Bildirimi (Fonksiyon Deyimi):
Fonksiyon bildirimi, fonksiyon anahtar sözcüğünü takiben fonksiyon adını kullanarak bir fonksiyonu tanımlamanın standart bir yoludur.
Fonksiyon bildirimleri kaldırılır, yani fonksiyon kodda tanımlanmadan önce çağrılabilir.
JavaScript:
function functionName(parameters) {
// Function body
}
Fonksiyon İfadesi:
Bir fonksiyon ifadesinde, fonksiyon tanımlanır ve bir değişkene atanır. İşlev adlandırılmış veya anonim olabilir. Kaldırılmazlar ve bu nedenle tanımlanmadan önce çağrılamazlar.
JavaScript:
const functionName = function(optionalName)(parameters) {
// Function body
};
Arrow Fonksiyonları:
Arrow fonksiyonları, fonksiyon ifadeleri yazmak için daha özlü bir sözdizimidir. Kendi this'lerini, argümanlarını, super'lerini veya new.target'larını bağlamazlar.
Her zaman anonimdirler ve kaldırılmazlar.
JavaScript:
const functionName = (parameters) => {
// Function body
};
Tek ifadeli geri dönüşler için küme parantezleri ve return anahtar sözcüğü atlanabilir:
JavaScript:
const functionName = (parameters) => expressionResult;
IIFE ( Immediately Invoked Function Expression):
IIFE, oluşturulduktan hemen sonra çalıştırılan bir fonksiyondur.
İşlev için özel bir kapsam oluşturur ve bu da değişken adlandırma çakışmalarını önlemeye yardımcı olur.
JavaScript:
(function() {
// Function body
})();
// It can also take parameter
(function(a, b) {
console.log(a + b);
})(1, 2);
Anonim Fonksiyonlar:
Bunlar isimsiz fonksiyonlardır. Genellikle ilk oluşturulduktan sonra erişilemezler.
Genellikle fonksiyonların değer olarak kullanıldığı bağlamlarda kullanılırlar (geri aramalar veya olay dinleyicileri gibi).
JavaScript:
setTimeout(function() {
console.log('Runs after 1 second');
}, 1000);
Adlandırılmış Fonksiyon İfadeleri:
Fonksiyon ifadelerine benzer, ancak fonksiyon anahtar sözcüğü ile parantezler arasına bir ad eklenir.
İsim, fonksiyonun gövdesi (kapsamı) için yereldir.
JavaScript:
const myFunction = function namedFunction(parameters) {
// Function body can use namedFunction to refer to itself
};
Callback Fonksiyonları:
Geri çağırma işlevi, başka bir işleve argüman olarak aktarılan bir işlevdir.
Bu teknik, bir fonksiyonun başka bir fonksiyonu çağırmasını sağlar. Bir geri arama fonksiyonu, başka bir fonksiyonun işi bittikten sonra çalışabilir.
JavaScript:
function doSomething(callback) {
// ... do some operation
callback(result);
}
Higher-Order Fonksiyonlar:
Yüksek dereceli fonksiyonlar, diğer fonksiyonları argüman olarak alan veya sonuç olarak fonksiyon döndüren fonksiyonlardır.
Bu model JavaScript'te, özellikle map, filter ve reduce gibi dizi yöntemlerinde yaygındır.
JavaScript:
function higherOrderFunction() {
return function() {
// Inner function body
};
}
Üreteç fonksiyonları, her seferinde bir tane olmak üzere yinelemeli olarak döndürülebilen bir dizi değer tanımlamanıza olanak tanır.
Fonksiyon* sözdizimi kullanılarak tanımlanırlar.
Üreteçler duraklatılabilir ve yeniden başlatılabilir, yeniden başlatmalar arasında bağlamlarını (değişken bağları) korurlar.
JavaScript:
function* myGenerator() {
yield 'first';
yield 'second';
// ...
}
Generatörler genellikle for...of döngüsü ile veya generator nesnesi üzerinde .next() yöntemini manuel olarak çağırarak kullanılır. Bu fonksiyon türlerinin her biri farklı avantajlar sunar ve farklı senaryolar için uygundur.