Sobes.tech
Junior

JavaScript-də spread və rest operatorları nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

spread (...) operatoru, təkrarlana bilən obyektləri (məsələn, massivlər və ya sətirlər) funksiyaları çağırarkən və ya massivlər yaradarkən sıfır və ya daha çox arqument və ya element gözlənilən yerlərdə "genişləndirmək" üçün istifadə olunur. Həmçinin, obyektlərin xüsusiyyətlərini yeni obyektə birləşdirmək üçün tətbiq edilir.

// Funksiya çağırışında spread istifadə
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3

// Massivləri birləşdirmək üçün spread istifadə
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]

// Obyektləri birləşdirmək üçün spread istifadə
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 (...) operatoru, funksiya parametrlərinin sintaksisində, qalan bütün arqumentləri massivə toplamaq üçün istifadə olunur. Bu, funksiyaya qeyri-müəyyən sayda arqument qəbul etməyə imkan verir. Həmçinin, massiv və ya obyekt destrukturizasiyasında qalan elementləri və ya xüsusiyyətləri toplamaq üçün istifadə olunur.

// Funksiya parametrlərində rest istifadə
function sum(...args) {
  // args indi [1, 2, 3] massividir
  return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6

// Massiv destrukturizasiyasında rest istifadə
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]

// Obyekt destrukturizasiyasında rest istifadə
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }

Əsas fərq:

  • spread elementləri və ya xüsusiyyətləri "genişləndirir".
  • rest elementləri və ya xüsusiyyətləri "toplayır" və onları massiv və ya obyektə yığır.