Rest وSpread — أساليب اصطلاحية للمصفوفات والكائنات
اجمعوا بقية القيم أو الخصائص، واستنسخوا وادمجوا باستخدام spread، وتجنبوا التعديلات الخفية بأنماط بسيطة
Rest وSpread — أساليب اصطلاحية للمصفوفات والكائنات درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 2 من أصل 2. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 2 دروس في المجموع.
مقدمة
الهدف: استخدموا rest لجمع العناصر الإضافية، وspread للنسخ أو الدمج.
- Spread للمصفوفات والكائنات
- Rest للمصفوفات (الرأس/الذيل)
- Rest للكائنات (استبعاد بعض المفاتيح)
- التعديل مقابل النسخ

أساسيات spread للمصفوفات
ينسخ [...arr] مصفوفةً، ويمكنكم دمج المصفوفات بنشرها داخل مصفوفة جديدة.
// Array spread creates a shallow copy and merges arrays
const a = [1, 2];
const b = [3, 4];
const clone = [...a];
const merged = [...a, ...b];
console.log("a:", a);
console.log("clone:", clone);
console.log("merged:", merged);

نمط rest للمصفوفات
يجمع عنصر rest (…tail) العناصر المتبقية في مصفوفة جديدة.
// Array rest collects the remaining items
const nums = [10, 20, 30, 40];
const [head, ...tail] = nums;
console.log("head:", head);
console.log("tail:", tail);

أساسيات spread للكائنات
يعتمد دمج الكائنات على الترتيب: تتجاوز عمليات spread اللاحقة المفاتيح السابقة.
// Object spread copies and merges; later keys win
const base = { theme: "light", compact: false };
const override = { compact: true };
const copy = { ...base };
const merged = { ...base, ...override };
console.log("copy:", copy);
console.log("merged:", merged);

نمط rest للكائنات
استخدموا { a, ...rest } لأخذ بعض الخصائص والاحتفاظ بالباقي معًا.
// Object rest collects remaining properties
const user = { id: 7, name: "Ayla", role: "admin" };
const { id, ...publicInfo } = user;
console.log("id:", id);
console.log("publicInfo:", publicInfo);

تجنب التعديل باستخدام النسخ
أنشئوا كائنًا جديدًا عند تغيير القيم؛ فهذا أوضح وأكثر أمانًا من تعديل البيانات المشتركة.
// Copy instead of mutating original data
const settings = { sound: true, volume: 5 };
// Mutating version (avoid in shared state)
// settings.volume = 6;
// Non-mutating: create an updated copy
const updated = { ...settings, volume: 6 };
console.log("settings:", settings);
console.log("updated:", updated);

اختبار rest للكائنات
تحقق سريع: rest للكائنات.

مراجعة
مراجعة: ينسخ spread المصفوفات والكائنات ويدمجها، بينما يجمع rest العناصر المتبقية. فضّلوا النسخ على التعديل لإبقاء التغييرات واضحة.

الأسئلة الشائعة
هل درس «Rest وSpread — أساليب اصطلاحية للمصفوفات والكائنات» مجاني؟
نعم — نص درس «Rest وSpread — أساليب اصطلاحية للمصفوفات والكائنات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 2 دروس في المجموع.
ماذا ستتعلم في «Rest وSpread — أساليب اصطلاحية للمصفوفات والكائنات»؟
اجمعوا بقية القيم أو الخصائص، واستنسخوا وادمجوا باستخدام spread، وتجنبوا التعديلات الخفية بأنماط بسيطة تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 2.
كم من الوقت يستغرق درس «Rest وSpread — أساليب اصطلاحية للمصفوفات والكائنات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات التفكيك للمصفوفات والكائنات
- Rest وSpread — أساليب اصطلاحية للمصفوفات والكائنات