نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
JS

منهج JavaScript

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج JavaScript/المعاملات والقيم المسترجعة

المعاملات والقيم المسترجعة

parameters javascriptالمعاملات في جافاسكريبتdefault parametersrest parameters jshigher order function

جدول مرجعي سريع

1
المفهومالصيغةالاستخدام
معامل افتراضيfunction(x = 10)قيمة بديلة عند عدم التمرير
Rest Parameterfunction(...args)تجميع عدد غير محدد من الوسائط
Higher-Order Functionدالة تُعيد دالةإنشاء دوال مخصصة ديناميكياً

الشرح

المعاملات (Parameters) هي الأسماء التي تُعرَّف بها الدالة لاستقبال بيانات من الخارج، بينما القيم الممررة فعلياً عند الاستدعاء تُسمى الوسائط (Arguments). جافاسكريبت مرنة جداً في هذا الجانب: يمكنك تمرير عدد وسائط أقل أو أكثر مما تتوقعه الدالة دون أي خطأ — الزائد يُتجاهل، والناقص يصبح undefined.

يمكن تحديد قيم افتراضية للمعاملات (Default Parameters) منذ ES6، بحيث إذا لم يُمرَّر وسيط لمعامل معين، أو مُرِّرت له undefined صراحة، يأخذ القيمة الافتراضية المحددة بدلاً من ذلك. هذا يُغني عن الطريقة القديمة للتحقق يدوياً داخل جسم الدالة.

عندما تحتاج دالة لاستقبال عدد غير محدد من الوسائط، تستخدم عامل الجمع (Rest Parameter) بصيغة ...اسم في نهاية قائمة المعاملات، وهو يُجمّع كل الوسائط الإضافية في مصفوفة واحدة يمكن التعامل معها بسهولة (بعكس كائن arguments القديم الذي كان أقل مرونة).

بخصوص return، يمكن للدالة إعادة أي نوع بيانات: رقم، نص، كائن، مصفوفة، أو حتى دالة أخرى — وهذا الأخير أساس مهم في مفاهيم متقدمة مثل Closures والدوال العليا (Higher-Order Functions). دالة تُعيد دالة أخرى تُستخدم بكثرة لإنشاء دوال مخصصة (مثل دالة تُنشئ دوال ضرب بقيمة ثابتة معينة).

الصياغة (Syntax)

syntax
1// معامل بقيمة افتراضية
2function ترحيب(اسم = "ضيف") {
3 return `أهلاً ${اسم}`;
4}
5
6// Rest Parameter لعدد غير محدد من الوسائط
7function جمع_الكل(...أرقام) {
8 return أرقام.reduce((مجموع, رقم) => مجموع + رقم, 0);
9}
10جمع_الكل(1, 2, 3, 4); // 10

أمثلة عملية

مثال 1: دالة تُنشئ وتُعيد دالة أخرى

دالة تُنشئ وتُعيد دالة أخرى
1// دالة تُعيد دالة أخرى (Higher-Order Function)
2function منشئ_ضارب(معامل) {
3 return function (رقم) {
4 return رقم * معامل;
5 };
6}
7
8const ضاعف = منشئ_ضارب(2);
9const ثلّث = منشئ_ضارب(3);
10console.log(ضاعف(5)); // 10
11console.log(ثلّث(5)); // 15

مثال 2: Rest Parameters وقيم افتراضية متقدمة

Rest Parameters وقيم افتراضية متقدمة
1// Rest Parameters في التطبيق
2function أكبر_رقم(...أرقام) {
3 return Math.max(...أرقام);
4}
5console.log(أكبر_رقم(4, 8, 15, 2)); // 15
6
7// القيم الافتراضية تعتمد على معاملات سابقة أيضاً
8function مستطيل(طول, عرض = طول) {
9 return طول * عرض;
10}
11console.log(مستطيل(5)); // 25 (مربع)

نصائح احترافية

  • —Rest Parameter (...أرقام) يجب أن يكون آخر معامل في القائمة دائماً — لا يمكن أن يتبعه معامل آخر.
  • —القيم الافتراضية تُفعَّل فقط عند undefined، ليس عند null أو 0 أو أي قيمة أخرى.
  • —يمكن لمعامل افتراضي أن يعتمد على قيمة معامل سابق له في نفس قائمة المعاملات.
  • —دالة تُعيد دالة أخرى هي أساس Closures، وتُستخدم كثيراً لإنشاء دوال مخصصة قابلة لإعادة الاستخدام.

الدرس السابق

تعريف واستدعاء الدوال

الدرس التالي

الدوال السهمية (Arrow Functions)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر