في لغة JavaScript، الدوال (Functions) هي كتل من التعليمات البرمجية مُصممة لأداء مهمة مُحددة. تُعتبر الدوال من اللبنات الأساسية في بناء البرامج، حيث تُمكنك من تقسيم البرنامج إلى أجزاء صغيرة قابلة لإعادة الاستخدام، مما يُسهل كتابة الكود وقراءته وصيانته.

مفهوم الدوال:

الدالة هي مجموعة من الأوامر مُجمعة تحت اسم واحد. عند استدعاء الدالة، يتم تنفيذ هذه الأوامر بالتسلسل. يُمكن للدالة أن تأخذ مُدخلات (تُسمى مُعاملات أو Parameters) وتُرجع قيمة (تُسمى قيمة الإرجاع أو Return Value).

فوائد استخدام الدوال:

  • إعادة استخدام الكود: يُمكنك تعريف كتلة من الكود مرة واحدة واستخدامها عدة مرات في أماكن مُختلفة من البرنامج.
  • تنظيم الكود: تُساعد الدوال على تقسيم البرنامج إلى أجزاء منطقية، مما يُسهل فهمه وصيانته.
  • تحسين قابلية القراءة: تُجعل الدوال الكود أكثر وضوحًا وقراءة، حيث يُمكنك فهم وظيفة جزء من الكود بمجرد قراءة اسم الدالة.
  • التجريد: تُخفي الدوال التفاصيل الداخلية لتنفيذ مهمة مُعينة، مما يُمكنك من التركيز على المستوى الأعلى من البرنامج.

طرق تعريف الدوال في JavaScript:

  1. تعريف الدالة باستخدام الكلمة المفتاحية function:
JavaScript
function اسم_الدالة(المعاملات) {
// أوامر الدالة
return قيمة_الإرجاع; // اختياري
}
  • function: الكلمة المفتاحية لتعريف الدالة.
  • اسم_الدالة: اسم يُستخدم لاستدعاء الدالة. يجب أن يتبع قواعد تسمية المتغيرات في JavaScript.
  • المعاملات: قائمة اختيارية من المُعاملات التي تأخذها الدالة، مفصولة بفواصل.
  • // أوامر الدالة: الكود الذي سيتم تنفيذه عند استدعاء الدالة.
  • return قيمة_الإرجاع;: عبارة اختيارية تُستخدم لإرجاع قيمة من الدالة. إذا لم يتم استخدام return، تُرجع الدالة undefined بشكل افتراضي.

مثال:

JavaScript
function جمع_عددين(العدد_الأول, العدد_الثاني) {
let المجموع = العدد_الأول + العدد_الثاني;
return المجموع;
}

let نتيجة_الجمع = جمع_عددين(5, 3); // استدعاء الدالة
console.log(نتيجة_الجمع); // سيطبع 8
  1. تعبيرات الدالة (Function Expressions):

يُمكن تعريف الدالة كجزء من تعبير، وتخزينها في متغير.

JavaScript
const اسم_المتغير = function(المعاملات) {
// أوامر الدالة
return قيمة_الإرجاع; // اختياري
};

مثال:

JavaScript
const ضرب_عددين = function(العدد_الأول, العدد_الثاني) {
return العدد_الأول * العدد_الثاني;
};

let نتيجة_الضرب = ضرب_عددين(4, 6); // استدعاء الدالة
console.log(نتيجة_الضرب); // سيطبع 24
  1. دوال السهم (Arrow Functions):

تُوفر طريقة مختصرة لتعريف الدوال، خاصةً الدوال البسيطة.

JavaScript
const اسم_المتغير = (المعاملات) => {
// أوامر الدالة
return قيمة_الإرجاع; // اختياري
};

إذا كانت الدالة تحتوي على تعبير واحد فقط، يُمكن حذف الأقواس المعقوفة وكلمة return.

مثال:

JavaScript
const تربيع_عدد = (العدد) => العدد * العدد;

let نتيجة_التربيع = تربيع_عدد(7); // استدعاء الدالة
console.log(نتيجة_التربيع); // سيطبع 49

const طباعة_رسالة = () => console.log("مرحباً!");
طباعة_رسالة(); // سيطبع "مرحباً!"

استدعاء الدوال:

يتم استدعاء الدالة بكتابة اسمها متبوعًا بأقواس (). إذا كانت الدالة تأخذ مُعاملات، يتم وضع القيم الفعلية لهذه المُعاملات داخل الأقواس.

نطاق المتغيرات في الدوال:

تُعرف المتغيرات المُعلنة داخل الدالة بنطاق محلي (Local Scope)، أي أنها تكون مُتاحة فقط داخل الدالة. أما المتغيرات المُعلنة خارج الدوال فتُعرف بنطاق عام (Global Scope)، أي أنها تكون مُتاحة في جميع أنحاء البرنامج.

مثال:

JavaScript
let متغير_عام = 10;

function دالة_بمتغير_محلي() {
let متغير_محلي = 5;
console.log(متغير_عام); // سيطبع 10
console.log(متغير_محلي); // سيطبع 5
}

دالة_بمتغير_محلي();
console.log(متغير_عام); // سيطبع 10
// console.log(متغير_محلي); // سيُسبب خطأ، لأن المتغير_المحلي غير مُتاح خارج الدالة

باختصار، الدوال هي جزء أساسي من لغة JavaScript، وتُساعد على كتابة كود مُنظم وقابل لإعادة الاستخدام. فهم كيفية تعريف واستخدام الدوال يُعتبر من المهارات الأساسية لأي مُبرمج JavaScript.