الدوال السهمية
تعرف الآن كيف تعلن دالة، وتمرّر وسائط، وترسل الناتج بـ return. كثير من المساعدات اليومية قصيرة، وكلمة function الكاملة تبدو ثقيلة. يوفر JavaScript شكلاً أقصر: الدالة السهمية بالرمز =>.
ماذا تعني الدالة السهمية
ما زالت دالة: تأخذ مدخلات، تنفّذ جسماً، ويمكنها إرجاع نتيجة. يتغيّر الشكل فقط. غالباً تخزّنها في const، تكتب المعاملات، ثم =>، ثم تعبيراً قصيراً أو كتلة { }.
بجانب الدالة التقليدية
📊 دالة تقليدية مقابل سهمية
| فكرة | الأسلوب التقليدي | الأسلوب السهمي |
|---|---|---|
| مساعد مسمّى | function add(a, b) { return a + b; } |
const add = (a, b) => a + b; |
| إرجاع تعبير واحد | return a + b; داخل { } |
التعبير بعد => يُرجع وحده |
| عدة أوامر | { } مع return |
نفس القاعدة: { } وreturn |
| معامل واحد | (name) |
name => ... (الأقواس اختيارية) |
| بدون معاملات | function hi() { ... } |
const hi = () => ... — () فارغة لازمة |
| مكان التعريف | إعلان أو تعبير | غالباً داخل متغير |
كلا الأسلوبين يمكنه إرجاع أرقام ونصوص. فضّل السهم عندما يكون المساعد صغيراً وتريد اسماً واضحاً بـ const. فضّل function التقليدية عندما تريد كتلة مسمّاة بارزة — كلاهما صحيح.
const double = (n) => n * 2;
let answer = double(5);
console.log(answer);
التعبير بعد السهم يُرجع وحده
إذا جاء بعد => تعبير واحد فقط، تُقيَّم قيمته وتُعاد تلقائياً — بلا { } وبلا كلمة return. هنا double(5) تصبح 10. غيّر الوسيط؛ يتبع الناتج.
const label = (score) => {
if (score < 0) {
return "invalid";
}
return "ok";
};
console.log(label(-1));
console.log(label(8));
الأقواس المعقوفة تعني أنك تتحكم بالإرجاع
عندما يستخدم الجسم { }، لا يُرجع JavaScript السطر الأخير تلقائياً. اكتب return بنفسك كما في الدالة التقليدية. هكذا تبقى المخارج المبكرة والمنطق متعدد الخطوات واضحة.
const greet = name => "Hello, " + name;
let line = greet("Sara");
console.log(line);
معامل واحد يمكنه إسقاط الأقواس
إن وُجد معامل واحد بالضبط، يمكنك كتابة name => ... دون ( ). موقع الاستدعاء لا يتغيّر: greet("Sara"). مع معاملين أو أكثر أبقِ الأقواس.
const hello = () => "Hello";
console.log(hello());
صفر معاملات ما زال يحتاج ()
بلا مدخلات اكتب أقواساً فارغة قبل =>. حذفها خطأ نحوي. الاستدعاء يبقى hello() — الزوج الفارغ يعني «لا معاملات».
const add = (a, b) => a + b;
let total = add(3, 4);
console.log(total);
console.log(add(10, 2));
سمِّها ثم استدعِها
const add = (a, b) => a + b يخزّن السهم تحت add. تستدعيه كأي دالة: add(3, 4) تُرجع 7. نفس المساعد، استدعاءان — بدون إعادة كتابة الجسم.
ضع سهماً في الصفحة
ابنِ نص ترحيب بسهم، استدعِه، واكتب الناتج في فقرة — نفس نمط الصفحة بشكل أقصر.
<!DOCTYPE html>
<html>
<head>
<title>arrow — page</title>
</head>
<body>
<p id="msg">…</p>
<script>
const welcome = guest => "Hello, " + guest;
let box = document.getElementById("msg");
box.textContent = welcome("Omar");
</script>
</body>
</html>
تظهر الفقرة Hello, Omar. أعاد السهم السلسلة؛ السطر التالي وضعها في الصفحة. غيّر الوسيط فقط، حدّث، واقرأ السطر الجديد. الدرس التالي عن النطاق — أين تظهر تلك الأسماء.
تمرين عملي
- أعد كتابة
function triple(n) { return n * 3; }كسهمconstبجسم تعبيري. - اكتب
const hi = name => "hi " + nameواطبعhi("Neda"). - اكتب
const ping = () => "pong"واستدعِه مرة. - اكتب سهماً بجسم كتلي يُرجع
"zero"عندماn === 0وإلا"nonzero". - بعد
const add = (a, b) => a + bتأكد أنadd(6, 1)يعطي7. - في مثال HTML غيّر سلسلة الوسيط فقط، حدّث، واقرأ الفقرة.
أخطاء شائعة
- فتح
{ }بعد=>ونسيانreturn— يصبح الاستدعاءundefined - حذف
()عندما لا توجد أي معاملات - خلط
=>مع عوامل المقارنة — السهم نحو دالة وليس «أكبر من» - توقع درس كامل عن
thisهنا — فروق الربط لصفحة لاحقة؛ هذه الصفحة للشكل المختصر - الاعتقاد أن الأسهم تلغي معرفة
return— التعبير ما زال يُرجع؛ الكتلة ما زالت تحتاجreturn
ملخص
- الدوال السهمية تستخدم
=>وتُخزَّن غالباً فيconst - تعبير عارٍ بعد
=>يُرجع تلقائياً - جسم
{ }يحتاجreturnصريحاً - معامل واحد قد يحذف
( )؛ صفر معاملات يحتاج()فارغة - الاستدعاء بالاسم كأي دالة أخرى
- تحديث الصفحة يمكنه استخدام سلسلة مُرجَعة من سهم
- التالي: النطاق — أين تعيش الأسماء
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى