Skip to content

Latest commit

 

History

History
55 lines (39 loc) · 1.62 KB

spread-syntax.md

File metadata and controls

55 lines (39 loc) · 1.62 KB

Spread Syntax

دسته: JavaScript Basics (ES6+)

spread syntax (سه نقطه ...) یه iterable (مثل آرایه، رشته، Set) رو به عناصر جداگانه باز می‌کنه. یعنی ... عناصر رو پخش می‌کنه.

const array = [5, 8, 6, 1, 3, 4, 7, 9, 2];

console.log(...array);

نکته: Rest و Spread هر دو از ... استفاده می‌کنن، ولی کارشون فرق داره:

Spread: عناصر رو پخش می‌کنه (توی فراخوانی تابع یا ساخت آرایه/آبجکت).
Rest: باقی عناصر رو جمع می‌کنه و به‌صورت آرایه برمی‌گردونه (توی پارامتر تابع یا destructuring).

کاربرد های دیگر:

const copy = [...array]; // کپی آرایه

// ادغام آرایه‌ها
const merged = [...arr1, ...arr2];

// اضافه کردن به آرایه
const newArr = [...array, 10];

// کپی آبجکت
const newObj = { ...obj };

// ادغام آبجکت‌ها
const merged = { ...obj1, ...obj2 };

// پاس دادن آرایه به تابعی که آرگومان جدا می‌خواد
Math.max(...array); //  9
[..."hello"]; //  ["h", "e", "l", "l", "o"]
[...new Set([1, 1, 2])]; //  [1, 2]

نکته: Spread کپی سطحی می‌ده

const nested = [{ a: 1 }];
const copy = [...nested];
copy[0].a = 2;
console.log(nested[0].a); //  2 (چون سطحی کپی شده!)