JavaScript'te Rest Operatörü
Bu derse bir açıklama ile başlayalım.
Bu bölümün önceki tüm derslerinde size
... operatörü hakkında tüm gerçeği söylemedim.
Aslında bu operatör, kod içindeki yerine bağlı olarak ya spread operatörü ya da rest operatörü olarak adlandırılabilir.
Bildiğiniz gibi, spread operatörü
bir dizi veya string'in önünde yer aldığında, onları
ayrı değerlere böler. Rest operatörü ise,
... şeklinde aynı sözdizimine sahip olsa da,
farklı bir amaç için kullanılır.
Şimdi ne için kullanıldığını anlayalım. İki parametre alan bir fonksiyonumuz olduğunu varsayalım:
function func(a, b) {
console.log(a);
console.log(b);
}
Bir fonksiyona fazladan parametreler aktarılırsa, bunun bir hata oluşturmayacağını zaten biliyor olmalısınız:
func(1, 2, 3, 4, 5);
Rest operatörü, tüm fazla parametreleri
bir dizi olarak almanızı sağlar. Bunun için
fonksiyona (mutlaka sona gelecek şekilde) bir parametre daha eklenir ve önüne 3 nokta konur:
function func(a, b, ...rest) {
}
Bu üç nokta, rest operatörüdür ve
değişken adı herhangi bir şey olabilir,
ancak genellikle rest olarak adlandırılır.
Şimdi fonksiyonumuzu fazla sayıda parametre ile çağıralım
ve a ve b parametrelerine neyin girdiğine,
neyin ise rest kısmına girdiğine bakalım:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // 1 yazacak
console.log(b); // 2 yazacak
console.log(rest); // [3, 4, 5] yazacak
}
Eğer fazla parametre olmazsa, rest değişkenine
boş bir dizi yazılır:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // 1 yazacak
console.log(b); // 2 yazacak
console.log(rest); // [] yazacak
}
Fonksiyonda hiç parametre olmayabilir,
ancak yine de rest eklenebilir.
Bu durumda fonksiyon herhangi bir sayıda parametre ile
çağrılabilir ve tüm parametreler rest dizisine girer:
function func(...rest) {
console.log(rest);
}