دوال السهم
جزء من قسم Fundamentals في رحلة JavaScript على Coddy — الدرس 51 من 77.
توفر دوال السهم (Arrow functions) طريقة أقصر لكتابة الدوال في JavaScript. وهي مفيدة بشكل خاص للدوال القصيرة والبسيطة.
يمتلك تعبير دالة السهم (arrow function expression) بناءً لغوياً أقصر مقارنة بتعبيرات الدوال، ولا يمتلك روابطه الخاصة بالكلمات المفتاحية this أو arguments أو super أو new.target. دوال السهم تكون دائماً مجهولة (anonymous).
إليك الصيغة الأساسية للدالة السهمية (arrow function):
(param1, param2) => {
// جسم الدالة
// ...
return value; // جملة return اختيارية
}إذا كانت الدالة تحتوي على معلمة واحدة فقط، يمكنك حذف الأقواس المحيطة بقائمة المعلمات. وإذا كان جسم الدالة يحتوي على تعبير واحد فقط، يمكنك حذف الأقواس المتعرجة وكلمة return الأساسية. سيتم إرجاع نتيجة التعبير بشكل ضمني.
إليك مثال على تعبير دالة تقليدي:
let add = function(a, b) {
return a + b;
};إليك الدالة نفسها مكتوبة كدالة سهم (arrow function):
let add = (a, b) => a + b;في هذا المثال، يتم الاحتفاظ بالأقواس حول المعلمات لأن هناك معلمتين. يتم حذف الأقواس المتعرجة وكلمة return الأساسية لأن جسم الدالة يحتوي على تعبير واحد فقط.
إليك مثال آخر بدون وسائط:
let greet = () => console.log("Hello!");
greet(); // المخرج: Hello!في هذه الحالة، يتم استخدام زوج فارغ من الأقواس للإشارة إلى أن الدالة لا تحتوي على أي معاملات.
تُستخدم دوال السهم (Arrow functions) غالباً عندما تحتاج إلى تمرير دالة قصيرة كمعامل (argument) لدالة أخرى.
التحدي
سهلأنشئ دالة سهمية (arrow function) باسم calculateBMI تأخذ معاملين، weight (بالكيلوجرام) و height (بالمتر)، وتعيد مؤشر كتلة الجسم (BMI). صيغة مؤشر كتلة الجسم (BMI) هي: weight / (height * height).
على سبيل المثال:
console.log(calculateBMI(70, 1.75)); // النتيجة: 22.857142857142858
console.log(calculateBMI(80, 1.8)); // النتيجة: 24.691358024691358ورقة مرجعية
توفر الدوال السهمية (Arrow functions) بناءً لغوياً أقصر لكتابة الدوال في JavaScript. وهي دائماً مجهولة (anonymous) ولا تمتلك ربط this الخاص بها.
البناء اللغوي الأساسي:
(param1, param2) => {
// جسم الدالة
return value;
}بالنسبة للتعبيرات الفردية، يمكنك حذف الأقواس المعقوفة و return:
let add = (a, b) => a + b;بالنسبة للمعاملات الفردية، تكون الأقواس اختيارية:
let square = x => x * x;في حالة عدم وجود معاملات، استخدم أقواس فارغة:
let greet = () => console.log("Hello!");جرّب بنفسك
// اكتب الكود الخاص بك أدناه
// لا تغير الأسطر أدناه
console.log(calculateBMI(70, 1.75));
console.log(calculateBMI(80, 1.8));يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
الأرقامString (النصوص)Boolean (القيم المنطقية)قواعد التسميةالمتغيرات الفارغةمراجعة - تهيئة المتغيراتالثوابت8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Continueمراجعة - Factorialحلقة Do Whileالحلقات المتداخلة3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةالمساواة الصارمة مقابل العاديةمراجعة - العمليات الحسابية البسيطة6أساسيات الإدخال والإخراج (IO)
الإخراجالإخراج باستخدام المتغيراتتحويل أنواع البيانات - الجزء الأولتحويل أنواع البيانات - الجزء الثانيمراجعة - حتى 120مراجعة - صح أم خطأ