JavaScript İşlev Tanımları
JavaScript fonksiyonları anahtar kelime ile
tanımlanırfunction
.
Bir işlev bildirimi veya bir işlev ifadesi kullanabilirsiniz .
Fonksiyon Bildirimleri
Bu öğreticide daha önce, işlevlerin aşağıdaki sözdizimi ile bildirildiğini öğrendiniz :
function functionName(parameters) {
// code to be executed
}
Bildirilen işlevler hemen yürütülmez. "Daha sonra kullanılmak üzere kaydedilirler" ve daha sonra çağrıldıklarında (çağrıldığında) yürütülürler.
Örnek
function myFunction(a, b) {
return a * b;
}
Noktalı virgül, yürütülebilir JavaScript deyimlerini ayırmak için kullanılır.
Bir işlev bildirimi yürütülebilir bir ifade olmadığından, onu noktalı virgülle bitirmek yaygın değildir.
Fonksiyon İfadeleri
Bir JavaScript işlevi, bir ifade kullanılarak da tanımlanabilir .
Bir fonksiyon ifadesi bir değişkende saklanabilir:
Örnek
const x = function (a, b) {return a * b};
Bir fonksiyon ifadesi bir değişkende saklandıktan sonra, değişken bir fonksiyon olarak kullanılabilir:
Örnek
const x = function (a, b) {return a * b};
let z = x(4, 3);
Yukarıdaki fonksiyon aslında isimsiz bir fonksiyondur (isimsiz bir fonksiyon).
Değişkenlerde depolanan işlevlerin işlev adlarına ihtiyacı yoktur. Değişken adı kullanılarak her zaman çağrılır (çağrılır).
Yukarıdaki işlev, yürütülebilir bir ifadenin parçası olduğu için noktalı virgülle biter.
Function() Yapıcısı
Önceki örneklerde gördüğünüz gibi JavaScript fonksiyonları function
anahtar kelime ile tanımlanır.
İşlevler, adlı yerleşik bir JavaScript işlev oluşturucusu ile de tanımlanabilir
Function()
.
Örnek
const myFunction = new Function("a", "b", "return a * b");
let x = myFunction(4, 3);
Aslında işlev yapıcısını kullanmak zorunda değilsiniz. Yukarıdaki örnek, yazmakla aynıdır:
Örnek
const myFunction = function (a, b) {return a * b};
let x = myFunction(4, 3);
new
Çoğu zaman, JavaScript'te anahtar kelimeyi kullanmaktan kaçınabilirsiniz .
Fonksiyon Kaldırma
Bu öğreticide daha önce "kaldırma" ( JavaScript Kaldırma ) hakkında bilgi edindiniz.
Kaldırma, JavaScript'in bildirimleri geçerli kapsamın en üstüne taşımaya yönelik varsayılan davranışıdır .
Kaldırma, değişken bildirimleri ve işlev bildirimleri için geçerlidir.
Bu nedenle, JavaScript işlevleri bildirilmeden önce çağrılabilir:
myFunction(5);
function myFunction(y) {
return y * y;
}
Bir ifade kullanılarak tanımlanan işlevler kaldırılmaz.
Kendi Kendini Çağıran İşlevler
İşlev ifadeleri "kendini çağıran" yapılabilir.
Kendi kendine çağrılan bir ifade, çağrılmadan otomatik olarak çağrılır (başlatılır).
İfadenin ardından () varsa, işlev ifadeleri otomatik olarak yürütülür.
Bir işlev bildirimini kendi kendine çağıramazsınız.
Bir fonksiyon ifadesi olduğunu belirtmek için fonksiyonun etrafına parantez eklemeniz gerekir:
Örnek
(function () {
let x = "Hello!!"; // I will invoke myself
})();
Yukarıdaki işlev aslında anonim bir kendi kendini çağıran işlevdir (isimsiz işlev).
Fonksiyonlar Değer Olarak Kullanılabilir
JavaScript işlevleri değerler olarak kullanılabilir:
Örnek
function myFunction(a, b) {
return a * b;
}
let x = myFunction(4, 3);
JavaScript işlevleri ifadelerde kullanılabilir:
Örnek
function myFunction(a, b) {
return a * b;
}
let x = myFunction(4, 3) * 2;
Fonksiyonlar Nesnelerdir
JavaScript'teki operatör , typeof
işlevler için "işlev" döndürür.
Ancak JavaScript işlevleri en iyi şekilde nesneler olarak tanımlanabilir.
JavaScript işlevlerinin hem özellikleri hem de yöntemleri vardır .
Özellik arguments.length
, işlev çağrıldığında alınan argümanların sayısını döndürür:
Örnek
function myFunction(a, b) {
return arguments.length;
}
Yöntem toString()
, işlevi bir dize olarak döndürür:
Örnek
function myFunction(a, b) {
return a * b;
}
let text = myFunction.toString();
Bir nesnenin özelliği olarak tanımlanan bir işleve, nesneye bir yöntem denir.
Yeni nesneler oluşturmak için tasarlanmış bir işleve nesne oluşturucu denir.
Ok Fonksiyonları
Ok işlevleri, işlev ifadelerini yazmak için kısa bir sözdizimine izin verir.
function
Anahtar kelimeye, return
anahtar kelimeye ve
küme parantezlerine ihtiyacınız yoktur .
Örnek
// ES5
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
Ok fonksiyonlarının kendilerine ait this
. Nesne yöntemlerini tanımlamak için pek uygun değiller .
Ok işlevleri kaldırılmaz. Kullanılmadan önce tanımlanmaları gerekir .
Bir işlev ifadesi her zaman sabit değer olduğundan, kullanmak kullanmaktan const
daha güvenlidir .var
return
Anahtar sözcüğü ve küme parantezlerini yalnızca işlev tek bir ifadeyse atlayabilirsiniz . Bu nedenle, bunları her zaman tutmak iyi bir alışkanlık olabilir:
Örnek
const x = (x, y) => { return x * y };
Ok işlevleri IE11 veya önceki sürümlerde desteklenmez.