65- دروس جافا سكربت – JS Arrow Function

بالطبع! تعتبر الدوال السهمية (Arrow Functions) في JavaScript من الميزات الحديثة التي تم تقديمها في ECMAScript 6 (ES6). تعد الدوال السهمية بديلاً مختصراً للدوال التقليدية، وهي توفر صيغة أكثر إيجازًا وتقدم [شركة برمجة مصرية] بعض الفوائد الخاصة، خاصة عند التعامل مع النطاقات (Scopes) والسياقات (Contexts). سنغطي هنا كيفية استخدام الدوال السهمية مع أمثلة متعددة توضح ميزاتها واستخداماتها.

### تعريف الدوال السهمية

الدوال السهمية تُعرّف باستخدام معامل السهم `=>`. إليك صيغة عامة للدوال السهمية:

const functionName = (parameters) => {
  // Function body
};

### مميزات الدوال السهمية

1. **اختصار في الكتابة**: تقلل الدوال السهمية من عدد الأسطر المستخدمة لتعريف الدوال.
2. **النطاق المعرفي**: لا تملك الدوال السهمية خاصية `this` الخاصة بها، بل تقوم باستخدام `this` من السياق المحيط بها. هذا يجعلها مفيدة في حالات معينة مثل استخدام الدوال داخل الكائنات أو في ردود النداء (Callbacks).

### أمثلة على الدوال السهمية

#### مثال 1: دالة جمع الأرقام

بدون استخدام الدوال السهمية:

function add(a, b) {
  return a + b;
}

باستخدام الدوال السهمية:

const add = (a, b) => a + b;

#### مثال 2: دالة بدون معاملات

إذا كانت الدالة لا تأخذ أي معاملات، يجب استخدام زوج فارغ من الأقواس:

const greet = () => console.log('Hello, World!');

#### مثال 3: دالة تحتوي على جملة واحدة

إذا كانت الدالة تحتوي على جملة واحدة وتعيد قيمة، يمكن تجاهل كلمة `return` والأقواس المعقوفة `{}`:

const square = x => x * x;

#### مثال 4: استخدام `this` في الدوال السهمية

الدوال السهمية لا تغير قيمة `this`:

const person = {
  name: 'Alice',
  greet: function() {
    setTimeout(() => {
      console.log(`Hello, my name is ${this.name}`);
    }, 1000);
  }
};

person.greet(); // الإخراج: Hello, my name is Alice

في المثال أعلاه، استخدمنا دالة سهمية داخل `setTimeout`، مما يضمن أن `this` يشير إلى كائن `person`.

### استخدامات وحالات خاصة

– **الدوال السهمية كمعاملات**: غالبًا ما تستخدم الدوال السهمية في تمرير الدوال كمعاملات، خاصة في الدوال المدمجة مثل `map`, `filter`, و `reduce`.

مثال على استخدام `map` مع دالة سهمية:

const numbers = [1, 2, 3, 4, 5];
const squares = numbers.map(num => num * num);
console.log(squares); // [1, 4, 9, 16, 25]

– **عدم استخدامها كدوال بناء (Constructors)**: لا يمكن استخدام الدوال السهمية مع الكلمة المفتاحية `new` لإنشاء كائنات.

### الخلاصة

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