🤔 لماذا نحتاج الحلقات؟
تخيل إنك عايز تطبع "مرحباً" 100 مرة. بدون حلقات، هتكتب:
هذا غير عملي وغير قابل للصيانة. الحلقات (Loops) هي الحل — تسمح لك بتكرار كود معين عدد معين من المرات أو حتى تحقق شرط معين.
- عرض قائمة منتجات في متجر إلكتروني
- البحث في مصفوفة بيانات
- معالجة كل حرف في نص
- تكرار طلبات API حتى الحصول على نتيجة
- حساب إجمالي سعر المنتجات في عربة التسوق
🔄 for loop — التكرار بعدد محدد
أشهر نوع حلقة في JavaScript. تُستخدم عندما تعرف مسبقاً عدد مرات التكرار.
البنية الأساسية
كيف تعمل for loop؟
- Initialization:
let i = 0— يُنفذ مرة واحدة في البداية - Condition:
i < 5— يُفحص قبل كل تكرار. إذا false، تتوقف الحلقة - Body: الكود داخل الأقواس — يُنفذ إذا كان الشرط true
- Update:
i++— يُنفذ بعد كل تكرار
أمثلة عملية
استخدم i كاسم للعداد في الحلقات — هذا اتفاق عالمي بين المطورين. لو عندك حلقات متداخلة، استخدم i, j, k.
🔄 while loop — التكرار حتى تحقق شرط
تُستخدم عندما لا تعرف عدد مرات التكرار مسبقاً. الحلقة تستمر طالما الشرط صحيح.
مثال واقعي: طلب بيانات من المستخدم
🔄 do...while — التنفيذ مرة واحدة على الأقل
مثل while لكنها تنفذ الكود مرة واحدة على الأقل قبل فحص الشرط. مفيدة عندما تحتاج لتنفيذ الكود أولاً ثم التحقق.
متى تستخدم do...while؟
🎯 for...of — التكرار على المصفوفات
أسهل طريقة للتكرار على عناصر المصفوفة (أو أي iterable). لا تحتاج لمعرفة الفهرس (index).
استخدم for...of للمصفوفات (القيم). استخدم for العادي إذا احتجت للفهرس (index). استخدم for...in للكائنات (المفاتيح).
🔑 for...in — التكرار على خصائص الكائن
تُستخدم للتكرار على مفاتيح (keys) الكائن. لا تستخدمها للمصفوفات — يمكن أن تتضمن خصائص موروثة.
🛑 break و continue — التحكم في التكرار
break — إيقاف الحلقة فوراً
يُستخدم للخروج من الحلقة عند تحقق شرط معين:
continue — تخطي التكرارة الحالية
يُستخدم لتخطي باقي الكود في التكرارة الحالية والانتقال للتكرارة التالية:
🌀 الحلقات المتداخلة
حلقة داخل حلقة. مفيدة لمعالجة البيانات ثنائية الأبعاد (مثل الجداول):
حلقة متداخلة من 100×100 = 10,000 تكرار. من 1000×1000 = 1,000,000 تكرار! كن حذراً مع الحلقات المتداخلة — قد تُبطئ التطبيق بشكل كبير.
⚠️ تجنب الحلقات اللانهائية
الحلقة اللانهائية (Infinite Loop) تستمر للأبد وتُجمّد المتصفح. أسبابها الشائعة:
اضغط Ctrl+Shift+Esc (Windows) أو Cmd+Option+Esc (Mac) لإغلاق التبويب. في Chrome، يمكنك فتح Task Manager من القائمة → More Tools → Task Manager.
💼 أمثلة واقعية من التطبيقات
1. حساب إجمالي سعر المنتجات
2. البحث عن مستخدم بالاسم
3. فلترة المنتجات حسب السعر
⚡ أداء الحلقات ونصائح التحسين
🚀 الخطوة التالية: الدوال (Functions)
في الدرس الخامس، ستتعلم كيف تُنشئ كود قابل لإعادة الاستخدام:
- 🔧 تعريف الدوال: function declaration و expression
- 📥 المعاملات (Parameters): تمرير بيانات للدالة
- 📤 return: إرجاع نتيجة
- 🎯 Arrow Functions: الدوال السهمية الحديثة