Sobes.tech
Junior

JavaScript'te spread ve rest operatörleri ne için kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

spread (...) operatörü, yineleyebilir nesneleri (diziler veya dizgeler gibi) fonksiyon çağrılarında veya diziler oluştururken sıfır veya daha fazla argüman veya öğe beklenen yerlere "genişletmek" için kullanılır. Ayrıca, nesne özelliklerini yeni bir nesneye birleştirmek için de kullanılır.

// Fonksiyon çağrısında spread kullanımı
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3

// Dizileri birleştirmek için spread kullanımı
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]

// Nesneleri birleştirmek için spread kullanımı
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 }; // { a: 1, b: 2, c: 3, d: 4 }

rest (...) operatörü, fonksiyon parametreleri sözdiziminde, kalan tüm argümanları bir diziye toplamak için kullanılır. Bu, fonksiyonun tanımlandığı yerde, belirsiz sayıda argüman almasını sağlar. Ayrıca, dizi veya nesne destrüktürasyonunda kalan öğeleri veya özellikleri toplamak için de kullanılır.

// Fonksiyon parametrelerinde rest kullanımı
function sum(...args) {
  // args artık [1, 2, 3] dizisidir
  return args.reduce((toplam, şuAnki) => toplam + şuAnki, 0);
}
console.log(sum(1, 2, 3)); // 6

// Dizi destrüktürasyonunda rest kullanımı
const [ilk, ikinci, ...kalanDizi] = [1, 2, 3, 4, 5];
// ilk = 1, ikinci = 2, kalanDizi = [3, 4, 5]

// Nesne destrüktürasyonunda rest kullanımı
const { a, b, ...kalanNesne } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, kalanNesne = { c: 3, d: 4 }

Ana fark:

  • spread "öğeleri" veya "özellikleri" genişletir.
  • rest "öğeleri" veya "özellikleri" bir dizi/nesneye toplar.