"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > بناء جملة الانتشار مقابل معلمة الراحة: ما الفرق؟

بناء جملة الانتشار مقابل معلمة الراحة: ما الفرق؟

تم النشر بتاريخ 2024-11-07
تصفح:337

Spread Syntax vs. Rest Parameter: What\'s the Difference?

معلمة الانتشار مقابل معلمة الراحة: فهم الفرق

في ES2015، هناك ميزتان جديدتان، بناء الجملة المنتشر ومعلمات الراحة، توفر طرقًا قوية لـ التعامل مع المصفوفات والكائنات. في حين أن كلاهما قد يبدو متشابهًا، إلا أنهما يخدمان أغراضًا مختلفة ولكل منهما وظيفة فريدة خاصة به.

صيغة الانتشار

صيغة الانتشار (ممثلة بثلاث نقاط "..." ) يسمح لك بنشر أو توسيع عنصر قابل للتكرار (مثل مصفوفة أو كائن) إلى عناصر فردية داخل عنصر تكراري آخر. تمكنك هذه الميزة من دمج أو دمج عدة مصفوفات أو كائنات في كائن جديد بسهولة.

على سبيل المثال، دعونا نفكر في الكود التالي:

var abc = ['a', 'b', 'c'];
var def = ['d', 'e', 'f'];
var alpha = [ ...abc, ...def ];
console.log(alpha); // alpha == ['a', 'b', 'c', 'd', 'e', 'f'];
في هذا المقتطف، ...abc و... يقوم بناء جملة الانتشار بتوسيع المصفوفتين abc وdef إلى عناصر فردية، مما يؤدي إلى إنشاء مصفوفة ألفا جديدة تحتوي على جميع العناصر من كلا المصفوفتين.

معلمة الراحة

من ناحية أخرى ، تقوم معلمة الاستراحة (يشار إليها بثلاث نقاط "..."، مسبوقة بمعرف) بجمع أي وسائط متبقية تم تمريرها إلى دالة في مصفوفة واحدة. يجب أن تكون معلمة الراحة هي المعلمة الأخيرة في قائمة معلمات الدالة.

مثال على معلمة الراحة قيد التنفيذ كما يلي:

function sumAll(...numbers) {
  let total = 0;
  for (let num of numbers) {
    total  = num;
  }
  return total;
}

let result = sumAll(1, 2, 3, 4, 5);
console.log(result); // result == 15
في هذا الكود، تقوم معلمة ...numbers Rest بجمع الوسيطات المتبقية التي تم تمريرها إلى الدالة sumAll (في هذه الحالة، 1، 2، 3، 4، و5) وإنشاء مصفوفة أرقام مفردة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3