English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript基础教程

JavaScript 对象

JavaScript 函数

DOM HTML لـ JS

BOM لمتصفح JS

دليل أساسيات AJAX

دليل مرجعي لـ JavaScript

وظيفة (Function) في JavaScript

الدالة في JavaScript هي قطعة من الكود المقصود لتنفيذ عملية أو مهمة معينة.

الدالة هي كود مخصص مكتوب من قبل البرمجي يمكنه تحسين توحيد البرنامج وتحسين كفاءته.

عندما يتم استدعاء دالة JavaScript، يتم تنفيذها.

تعريف الدالة

تعريف الدالةأيضاً يُسمىبيان الدالةاستخدام كلمة المفتاح function، ترتيب الدوال كالتالي:

  • اسم الدالة

  • قائمة معلمات الدالة محاطة بأقواس صغيرة ( ) ومفصولة بالكوماس.

  • جمل تعريف الدالة محاطة بأقواس مزدوجة { }.

هذه هي صيغة الدوال في JavaScript:

دالةُ nameOfFunction(parameter1, parameter2, ..., parameterN) {
 //كود للتنفيذ
 }

يمكن أن تحتوي اسم الدالة على أحرف، أرقام، شرطية ورمز الدولار $ (بنفس القواعد التي تنطبق على المتغيرات).

في المثال الأول، سنقوم بتعريف دالة لتسجيل ترحيب في الوثيقة.

دالةُ greet() {
   document.write("مرحباً، World!");
}
اختبار لرؤية‹/›

استدعاء الدالة

تعريف الدالة لا يؤدي إلى تنفيذها. تعريف الدالة يُمثل فقط تسمية الدالة وتحديد العمليات التي تتم عند استدعاءها.

يمكنك استدعاء الدالة عن طريق إضافة أقواس () بعد اسم الدالة.

//تعريف دالة greet()
دالةُ greet() {
   document.write("مرحباً، World!");
}
//استدعاء الدالة greet() المحددة مسبقًا
greet();
اختبار لرؤية‹/›

الآن، سنgreet();يمكن تكرار استخدام الكود الموجود داخل الدالة حسب الحاجة.

//تعريف دالة greet()
دالةُ greet() {
   document.write("مرحباً، World!");
}
//تكرار استدعاء الدالة greet() المحددة مسبقًا
greet();
greet();
greet();
اختبار لرؤية‹/›

يمكنك أيضًا استخدام طرق أخرى لاستدعاء الدالة:

  • عند حدوث أحداث (عند النقر على الزر)

  • استدعاءه من كود JavaScript

  • تلقائي (بلا تدخل)

في الجزء التالي من هذا الدليل، ستعلم المزيد عن استدعاء الدوال.

معلمات الدالة

يمكنك تحديد المعلمات عند تعريف دالة لقبول القيم عند تشغيلها.

معلمات الدالة يتم إدراجها في الأقواس () في تعريف الدالة.

//تعريف الدالة
دالةُ greet(name) {
   document.write("مرحباً، " + name);
}
//دالةُ greet بمعامل "Vishal"
greet("Vishal");
اختبار لرؤية‹/›

يمكنك تعريف أي عدد من المعلمات حسب الحاجة.

//تعريف الدالة
دالةُ الإضافة(num1, num2, num3) {
   مُعادلةُ الإجمالي = num1 + num2 + num3;
   document.write(total);
}
 
//استدعاء الدالة
add(5, 20, 10); // يُنشر: 35
add(-5, 8, 7);  // يُنشر: 10
اختبار لرؤية‹/›

لكن، يجب تقديم كل معامل مُحدد للدالة عند استدعائها، وإلا سيصبح قيمته غير معروفة.

//تعريف الدالة
function showFullname(fName, lName) {
   document.write(fName + " " + lName);
}
 
//استدعاء الدالة
showFullname("Kavy", "Mark"); // يُنشر: Kavy Mark
showFullname("John"); // يُنشر: John undefined
اختبار لرؤية‹/›

يعمل المعاملون مثل متغيرات الاستبدال في الدالة؛ يتم تقديم القيم التي يتم تقديمها إلى الدالة عند استدعائها (تُدعى المعاملات).

تظهر المعاملات داخل الدالة كمتغيرات محلية.

ستتعرف على المزيد حول معاملات الدوال في الجزء التالي من الدليل.

القيمة العائدة

يمكن للدوال في جافا سكربت استخدام جملة return لإرجاع القيمة إلى سكربت الاستدعاء.

يمكن أن تكون القيمة العائدة من أي نوع، بما في ذلك القوائم والأجسام.

عندما يصل جافا سكربت إلى جملة return، يتوقف التنفيذ في الدالة.

تستخدم الدالة التالية معامل يُدعى الرقم، وتقوم بتقديم معامل مضاعف لنفسه (أي الرقم):

//تعريف الدالة
function square(number) {
   return number * number;
}
//استدعاء الدالة، القيمة المُستخدمة ستُخزن في x
var x = square(5);
اختبار لرؤية‹/›

لا يمكن للدالة أن تعود عدة قيم. ولكن يمكنك الحصول على نتيجة مشابهة عن طريق العودة بجمع القيم:

function makeArray() {
   var myArray = ["Apple", "Mango", "Banana", "Orange"];
   return myArray;
}
اختبار لرؤية‹/›

استخدام عمودية () لاستدعاء الدالة

استخدم الأمثلة أعلاه، لاستدعاء دالة square الموضوع، واستدعاء نتيجة دالة square()

إذا لم تستخدم ()، فإنه سيقوم بتقديم تعريف الدالة بدلاً من نتيجة الدالة:

function square(number) {
   return number * number;
}
document.write(square(5));  // يُنشر 25
document.write(square); // يُنشر التعريف الدالة
اختبار لرؤية‹/›

تعبير الدالة

على الرغم من أن بيان تعريف الدالة في النص النحوي هو جملة، يمكن أيضًا استخدام الدالةالتعبيرإنشاء الدوال

يمكن تخزين تعبير الدالة في متغير، ويُستدعى دائمًا باستخدام اسم المتغير.

يمكن أن تكون هذه الدوالغير المسمى ; ليس من الضروري أن يكون لها اسم. على سبيل المثال، يمكن تعريف دالة square() كما يلي:

var square = function(number) { return number * number; };
var x = square(5); // x = 25
اختبار لرؤية‹/›

مثال آخر:

var sum = function(a, b) {
return a + b;
};
var x = sum(100, 8); // x = 108
اختبار لرؤية‹/›

يُنتهي الأمر بالدالة باستخدام نقطة السطر، لأنها جزء من جملة تنفيذية.

مجال العمل للدالة

لا يمكن الوصول إلى المتغيرات المحددة في الدالة من أي مكان خارج الدالة، وستصبح متغيرات محلية للدالة.

// لا يمكن استخدامُ هذا الكودُ لـ city
function myFunc() {
   var city = "New Delhi";
  // يمكن استخدامُ هذا الكودُ لـ city
}
// لا يمكن استخدامُ هذا الكودُ لـ city
اختبار لرؤية‹/›

بما أن المتغيرات المحلية يمكن استخدامها فقط داخل الدالة، يمكن استخدام متغيرات بنفس الاسم في دوال مختلفة.

تُنشأ المتغيرات المحلية عند بدء الدالة، وتُحذف عند إكمال الدالة.